Oracle MONTHS_BETWEEN() 函数使用指南

Oracle MONTHS_BETWEEN() 是一个内置函数,它返回两个给定日期之间的月数。

Oracle MONTHS_BETWEEN() 语法

这里是 Oracle MONTHS_BETWEEN() 函数的语法:

MONTHS_BETWEEN(date1, date2)

参数

date1

必需的。

date2

必需的。

返回值

Oracle MONTHS_BETWEEN() 函数返回两个给定日期之间的月数。

如果 date1 晚于 date2,则结果为正。如果 date1 早于 date2,则结果是否定的。如果 date1date2 是某个月的同一天或都是所在月的最后一天,则结果始终为整数。否则 Oracle 数据库会根据有 31 天的月份计算结果的小数部分,并考虑时间分量 date1date2 的差异。

如果任意一个参数为 NULLMONTHS_BETWEEN() 将返回 NULL

Oracle MONTHS_BETWEEN() 示例

这里有几个展示了 Oracle MONTHS_BETWEEN() 函数用法的示例。

基本用法

要计算两个月之间的月数,请使用如下带有 MONTHS_BETWEEN() 的语句:

SELECT
    MONTHS_BETWEEN(DATE '2023-05-20', DATE '2023-02-10') Result
FROM dual;

输出:

                                     RESULT
___________________________________________
   3.32258064516129032258064516129032258065

如果您交换两个参数的值,将得到一个负数的结果:

SELECT
    MONTHS_BETWEEN(DATE '2023-02-10', DATE '2023-05-20') Result
FROM dual;

输出:

                                      RESULT
____________________________________________
   -3.32258064516129032258064516129032258065

整数结果

如果两个日期的天相同,或者都是某个月的最后一天,MONTHS_BETWEEN() 将返回一个整数。

SELECT
    MONTHS_BETWEEN(DATE '2023-05-20', DATE '2023-02-20') Result1,
    MONTHS_BETWEEN(DATE '2023-05-31', DATE '2023-02-28') Result2
FROM dual;

输出:

   RESULT1    RESULT2
__________ __________
         3          3

NULL 参数

如果任意一个参数为 NULLMONTHS_BETWEEN() 将返回 NULL

SET NULL 'NULL';
SELECT
    MONTHS_BETWEEN(NULL, DATE '2023-05-20') NULL_1,
    MONTHS_BETWEEN(DATE '2023-05-20', NULL) NULL_2,
    MONTHS_BETWEEN(NULL, NULL) NULL_3
FROM dual;

输出:

   NULL_1    NULL_2    NULL_3
_________ _________ _________
     NULL      NULL      NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle MONTHS_BETWEEN() 是一个内置函数,它返回两个给定日期之间的月数。