上节已经讲过PowerBI里日期时间函数的所有基础函数了,本节主要讲几个进阶函数。
1、CALENDAR 返回一个从起始日期开始,到截止日期为止的所有日期的单列表
语法:CALENDAR (起始日期,结束日期)
案例:通过Calendar返回一个从2021-6-20到2021-6-25的一个日期表
日期表=CALENDAR(date(2021,6.20),date(2021,6.24))
注意:Calendar 返回的是一个日期表,第一参数必须小于第二参数,否则会报错。返回的表也可以用做日期筛选器用。
2、CALENDARAUTO 返回一个单列的日期表,日期范围基于模型中的最小日期和最大日期
语法:CALENDARAUTO(N)N=1 to 12
注意:返回的是一个周期年日期表。该日期表的起始日期是根据输入的参数来定。例如:现在是2021年,当N=3时,则返回2021/4/1 到2022/3/31。
当没有参数时则返回2021/1/1到2021/12/31。
3、DATEDIFF 返回两个日期之间指定的间隔数
语法:DATEDIFF(日期1,日期2,day/month/quarter/year/hour/minute/second)
案例:计算2021/6/20 到2021/6/25之间有多少天,结果返回5
相隔天数 = DATEDIFF(date(2021,6,20),date(2021,6,25),DAY)
说明:当第一参数大于第二参数时,返回结果会呈负数。第三参数可以设为年、季、月、日、时、分、秒
4、YEARFRAC 以年为单位统计起始日期和截止日期之间间隔的天数的占比,精确到小数点后两位
语法:YEARFRAC(起始日期,结束日期,0/1/2/3/4)
案例:计算2021年6月份的天数占比,结果会返回8.2%
21年6月天数占比 = YEARFRAC(date(2021,6,1),date(2021,6,31),3)
第3参数使用说明
注意:第一参数必须小于第二参数,否则返回结果无效或者错误。
5、DATEBETWEEN 返回一个表,其中包含两个给定日期之间的所有日期
语法:DATEBETWEEN(‘表’[日期列],起始日期,结束日期)
案例:现在有个2021/6/5日到2021/6/30日的销售表,通过datesbetween返回一个日期表
日期表 = DATESBETWEEN('销售表'[日期],date(2021,6,1),date(2021,6,31))
注意:1、如果起始日期为空,则使用‘销售表’[日期]中的最早值;
2、如果结束日期为空,则使用‘销售表’[日期]中的最晚值;
3、如果起始日期-结束日期 包含了‘销售表’[日期]的所有日期,则返回‘销售表’[日期]的最小日期和最大日期;
4、如果起始日期-结束日期 被包含在‘销售表’[日期]之内,则返回起始日期-结束日期形成的日期表。