日期算術 - 月份或年份的日期差異
使用 MONTHS_BETWEEN( date1, date2 )
可以找到兩個日期之間的月份差異 :
SELECT MONTHS_BETWEEN( DATE '2016-03-10', DATE '2015-03-10' ) AS difference FROM DUAL;
輸出:
DIFFERENCE 12
如果差異包括部分月份,那麼它將根據每月 31 天返回月份的分數 :
SELECT MONTHS_BETWEEN( DATE '2015-02-15', DATE '2015-01-01' ) AS difference FROM DUAL;
輸出:
DIFFERENCE 1.4516129
由於 MONTHS_BETWEEN
假設每月 31 天,每月可以減少天數,那麼這可能導致跨越月份之間邊界的差異的不同值。
例:
SELECT MONTHS_BETWEEN( DATE'2016-02-01', DATE'2016-02-01' - INTERVAL '1' DAY ) AS "JAN-FEB",
MONTHS_BETWEEN( DATE'2016-03-01', DATE'2016-03-01' - INTERVAL '1' DAY ) AS "FEB-MAR",
MONTHS_BETWEEN( DATE'2016-04-01', DATE'2016-04-01' - INTERVAL '1' DAY ) AS "MAR-APR",
MONTHS_BETWEEN( DATE'2016-05-01', DATE'2016-05-01' - INTERVAL '1' DAY ) AS "APR-MAY"
FROM DUAL;
輸出:
JAN-FEB FEB-MAR MAR-APR APR-MAY
------- ------- ------- -------
0.03226 0.09677 0.03226 0.06452
可以通過將月差除以 12 來找到年份的差異。