MONTHS_BETWEEN
引入或更新: v1.2.307
返回 date1 和 date2 之间的月份数。
语法
MONTHS_BETWEEN( <date1>, <date2> )
参数
date1 和 date2 可以是 DATE 类型、TIMESTAMP 类型,或两者的混合。
返回类型
该函数根据以下规则返回一个 FLOAT 值:
-
如果 date1 早于 date2,函数返回一个负值;否则,返回一个正值。
示例:SELECTMONTHS_BETWEEN('2024-03-15'::DATE,'2024-02-15'::DATE),MONTHS_BETWEEN('2024-02-15'::DATE,'2024-03-15'::DATE);-[ RECORD 1 ]-----------------------------------months_between('2024-03-15'::date, '2024-02-15'::date): 1months_between('2024-02-15'::date, '2024-03-15'::date): -1 -
如果 date1 和 date2 落在各自月份的同一天,或者两者都是各自月份的最后一天,结果是整数。否则,函数根据一个31天的月份计算结果的小数部分。
示例:SELECTMONTHS_BETWEEN('2024-02-29'::DATE,'2024-01-29'::DATE),MONTHS_BETWEEN('2024-02-29'::DATE,'2024-01-31'::DATE);-[ RECORD 1 ]-----------------------------------months_between('2024-02-29'::date, '2024-01-29'::date): 1months_between('2024-02-29'::date, '2024-01-31'::date): 1SELECTMONTHS_BETWEEN('2024-08-05'::DATE,'2024-01-01'::DATE);-[ RECORD 1 ]-----------------------------------months_between('2024-08-05'::date, '2024-01-01'::date): 7.129032258064516 -
如果 date1 和 date2 是相同的日期,函数忽略任何时间部分并返回0。
示例:SELECTMONTHS_BETWEEN('2024-08-05'::DATE,'2024-08-05'::DATE),MONTHS_BETWEEN('2024-08-05 02:00:00'::TIMESTAMP,'2024-08-05 01:00:00'::TIMESTAMP);-[ RECORD 1 ]-----------------------------------months_between('2024-08-05'::date, '2024-08-05'::date): 0months_between('2024-08-05 02:00:00'::timestamp, '2024-08-05 01:00:00'::timestamp): 0

