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
,则结果是否定的。如果 date1
和 date2
是某个月的同一天或都是所在月的最后一天,则结果始终为整数。否则 Oracle 数据库会根据有 31 天的月份计算结果的小数部分,并考虑时间分量 date1
和 date2
的差异。
如果任意一个参数为 NULL
, MONTHS_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 参数
如果任意一个参数为 NULL
, MONTHS_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()
是一个内置函数,它返回两个给定日期之间的月数。