Oracle數據庫中計算時間差的常用表達式

  在Oracle數據庫常用的日期與時間的計算

一、計算月份差值

 select months_between(date'2016-12-18',date'2017-04-18') between_month from dual;


計算 2016-12-18 與 2017-04-08 之間相差了幾個月


 運行結果爲  相差了 4個月


二、獲取兩時間的相差豪秒數


select ceil((To_date('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss') -
            To_date('2008-04-30 23:59:59', 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒數
  FROM DUAL;



運行結果爲 兩個時間的毫秒數差值


三 、獲取兩時間的相差分鐘數

select ceil(((To_date('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss') -
            To_date('2008-04-30 23:59:59', 'yyyy-mm-dd hh24-mi-ss'))) * 24 * 60) 相差分鐘數
  FROM DUAL;



運行結果爲兩個時間之間相差的分鐘數


四、獲取兩時間的相差小時數

select ceil((To_date('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss') -
            To_date('2008-04-30 23:59:59', 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小時數
  FROM DUAL;



運行結果爲兩個時間之間相差的小時數


五、獲取兩時間的相差天數

select ceil((To_date('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss') -
            To_date('2008-04-30 23:59:59', 'yyyy-mm-dd hh24-mi-ss'))) 相差天數
  FROM DUAL;



運行結果爲兩日期相差的天數


六、獲取兩時間年份差

select EXTRACT(year FROM to_date('2009-05-01', 'yyyy-mm-dd')) -
       EXTRACT(year FROM to_date('2008-04-30', 'yyyy-mm-dd')) years
  from dual;



運行結果爲兩日期相差的年份數



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章