跳到主要内容
版本:5.9.0

MONTHS_BETWEEN函数的用法

语法

MONTHS_BETWEEN(日期字段1, 日期字段2)
--说明:返回两个日期相差的月数,不足一月则按天计算小数值,只允许传入日期型字段
示例:
MONTHS_BETWEEN([离职日期], [入职日期] ),返回同一行上"离职日期"至"入职日期"间隔月数

适用场景

场景1:计算上月的月末跟日期字段的月数差。

【步骤1】新建一个字段,算出上月的月末:last_day(add_months(now(),-1))

image.png

结果如下:

 image.png

【步骤2】用MONTHS_BETWEEN函数算出月份差:MONTHS_BETWEEN([上月最后一天],[日期])

image.png

结果如下:

image.png

也可以直接把两个函数套在一起使用:MONTHS_BETWEEN( last_day(add_months(now(),-1)) ,[日期])

image.png

场景2:日期、月末对齐问题

① 如果是本月有31天,跟上月对比,那么上月的31号的月份差是1,30号就是有小数点的;

② 如果是本月有30天,跟上月天对比,那么上月的30和31号的月份差是一样的,都是1;

image.png

③ 如果是2月份有28天,跟上月对比,那么1月28号和1月31号的月份差都是1,1月29号和1月30号就是有小数点的:

image.png

注意事项

1、MONTHS_BETWEEN([日期1], [日期2] ),如果日期1大于日期2,那么返回为正数,反之,为负数:

image.png

2、如果日期1和日期2是所在月份的最后一天,或者是同一天,那么返回的会是整数,否则差额按每月31天计算:

image.png