让决策更智能
新一代智能数据分析平台

MONTHS_BETWEEN 函数的逻辑和用法

观小数发表于:2021年05月29日 16:49:33更新于:2021年06月01日 14:32:48

一、函数介绍:

MONTHS_BETWEEN

用法:MONTHS_BETWEEN(日期字段1, 日期字段2)

说明:返回两个日期相差的月数,不足一月则按天计算小数值,只允许传入日期型字段

示例:MONTHS_BETWEEN([离职日期], [入职日期] ),返回同一行上"离职日期"至"入职日期"间隔月数


二、使用场景:

计算上月的月末跟日期字段的月数差。

实现步骤:

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

00160b59f860ae4f16f1f0f4365718e

结果如下

00160b5b1ae685836e758ad0eaeda66


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


00160b5aa449038a5beecd6d43afaba

结果如下:

00160b5ce7422e9d8ed3588478c0f1a


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

00160b5a08ea14220b05dfab1883d1f

三、注意事项

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

00160b5ab17aff53f4e8943898d202f


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

00160b5acb9efc4b06cd01b2c4dbd9f

image.png


日期、月末对齐问题举例:

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

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

00160b5cf363209a80c479637dbca84

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

00160b5d3971dc3fea3c751629b7e92





    您需要登录后才可以回复