Oracle Database 日期算术-日期之间的月份或年份之间的差异


本文向大家介绍Oracle Database 日期算术-日期之间的月份或年份之间的差异,包括了Oracle Database 日期算术-日期之间的月份或年份之间的差异的使用技巧和注意事项,需要的朋友参考一下

示例

可以使用以下命令找到两个日期之间的月份差异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得出。