当前位置:   article > 正文

7.16 PowerBI系列之DAX函数专题-日期时间函数和时间智能函数使用总结_powerbi 日期函数

powerbi 日期函数

注意事项

1.尽量避免直接使用事实表上的日期列来参与时间智能函数的使用
2.时间智能函数往往要求日期列的值要按天连续
3.尽量单独创建一个calendar表,基于calendar表使用时间智能函数
4.calendar表需要按天连续,没有重复值,没有空值,日期列是date类
5.不要使用datetime类型的列,尽量使用date类型列,因为达特time包含时间,函数在处理时性能比较差
6.避免在calendar表和事实表时间使用双向交叉筛选
7.calendar表和事实表建立关系需要基于date类型的日期列,如果是其他类型的类建立关系,时间智能函数无法正确使用
8.时间函数在directquery中不能使用。

一些小技巧

1.月份排序如果需要倒序的,可以将month_no*-1,作为排序列
2.dateadd虽然是表函数,但可以利用它和filter结合计算指定一天所对应的相隔日期
3.添加自定义列取当前天,并在slicer中默认当前天

当前天 = if(format(dimdate[date],"MM/DD/YYYY" )= format(today(),"MM/DD/YYYY"),"current date",convert(dimdate[date],string))
  • 1

4.默认根据日历表去前一天,并在slicer中默认前一天

previous date = if('sales'[date_flag]=format(dateadd(filter(all('calendar'[date]),format('calenda'[date],"MM/DD/YYYY")=format(today(),'MM/DD/YYYY')),-1,day),"MM/DD/YYYY"),"yesterday",'sales'[date_flag])
  • 1

6.默认上个月底month ending

lastmonthending = if('sales'[date flag]=EOMONTH(today(),-1),"Last Month End",format('Sales'[Date Flag],"MM/DD/YYYY"))
  • 1

7.时区加减小时的问题
dateadd函数只能将date日期作为参数传入,不能将带有日期和时间的列作为参数。
直接在带时间的日期列上进行加减,如:

date[datetime]+(1/24)*8 --8小时
date[datetime]+1 --1
  • 1
  • 2

DATE

以日期/时间格式返回指定的日期 。

DATE(<year>, <month>, <day>)
  • 1

在这里插入图片描述

TOTALYTD

计算当前上下文中表达式的 year-to-date 值 (年末总和)。注意辨析与datesytd(指定日期年初到年末的累计和)的区别。

TOTALYTD(<expression>,<dates>[,<filter>][,<year_end_date>])
  • 1

在这里插入图片描述
下面的示例公式创建一个度量,该度量计算 Internet 销售的**“年累积总额”**或“年累积总和”。

= TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
  • 1

EOMONTH

以日期/时间格式返回指定月份数之前或之后的月份的最后一天的日期 。 使用 EOMONTH 来计算适逢当月最后一天的到期日期或截止日期。

EOMONTH(<start_date>, <months>)
  • 1

在这里插入图片描述
下面的表达式返回 2008 年 5 月 31 日,因为月份参数舍入为 2。

= EOMONTH("March 3, 2008",1.5)
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/440242
推荐阅读
相关标签
  

闽ICP备14008679号