在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;
運行結果爲兩日期相差的年份數