--Oracle中兩個日期計算相差的天數
select TO_NUMBER(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
- TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
AS 相差天數
from dual;
--Oracle中兩個日期計算相差的小時數
select TO_NUMBER(
(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
- TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
)*24
)
AS 相差小時數
from dual;
--Oracle中兩個日期計算相差的分鐘數
select TO_NUMBER(
(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
- TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
)*24*60
)
AS 相差分鐘數
from dual;
--Oracle中兩個日期相差秒數
select TO_NUMBER(
(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
- TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
)*24*60*60
)
AS 相差秒數
from dual;
--oracle兩個日期的相差月數
/*月份都是最後一天,A日期 > B日期 ,返回整數*/
select months_between(
TO_DATE('2018-6-30','yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
)
As 相差月份1 from dual;
/*月份都是最後一天,B日期 > A日期 ,返回負數*/
select months_between(
TO_DATE('2018-4-30','yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
As 相差月份2
from dual;
/*月份天數不一樣,A日期 > B日期 ,返回帶小數的數字*/
select months_between(
TO_DATE('2018-6-25','yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
As 相差月份3
from dual;
--oracle兩個日期的相差年份
select ((months_between
(TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2016-5-31','yyyy-mm-dd hh24:mi:ss'))
)/12
)
As 相差年份 from dual;