POWER BI DAX函数应用-日期和时间函数

最近几个月,我悠闲得仿佛不像一个刚入职的新手,倒像是一个混了大半辈子,两手一摊就等着油灯枯尽的“那位同志”。

不同的是,“那位同志”活得心安理得,随波漂流,或深渊或浅溪,从不担心明天是否还会看见太阳升起。而我嘛,还拖着半湿不干的咸鱼身躯,期待着被贴上商标,等待着被人选中、屠宰、消化、排泄。

可惜海岸太高,我看不到人们的表情,听不到人们的声音,不知道他们何时才来打捞,而我,何时才能成为人们的盘中餐,口中食。

空闲之际,我将把DAX函数分为日期和时间函数、筛选器函数、信息函数、逻辑函数、数学函数、统计函数、文本函数7大模块来进行逐步介绍。


本篇详细介绍日期和时间函数。

1.DATE(YEAR,MONTH,DAY)

函数作用:拼接年、月、天,返回datetime格式的日期。

示例:DATE(2019,5,22)=2015/5/22。

应用场景:将非datetime的日期转化为datetime格式。

比如要将20190522这种非标准的日期格式转化为datetime格式,可先用left、mid、right函数将20190522拆为2019(年),05(月),22(天),再使用DATE函数将其转换为datetime格式的2019/5/22。

注意事项:

年份<100时,自动加上1900,比如,如果年份为99,那么将加上1900,返回值为1999。

月份>12或月份<1时,自动向后一年顺延或向前一年倒推,比如20151501的返回值为2016/3/1,2015-120的返回值为2014/11/20。

天份>当月最大天或天份<1时,自动向后一月顺延或向前一月倒推,比如20150232的返回值为2015/3/4,201502-1的返回值为2015/1/30。

2.YEAR(DATE),MONTH(DATE),DAY(DATE)

函数作用:以 1900-9999 范围的四位整数形式返回日期的年份,以1-12范围的整数形式返回日期的月份,以1-31范围的整数形式返回日期的天份。

示例:YEAR(2019/5/22)=2019,MONTH(2019/5/22)=5,DAY(2019/5/22)=22。

应用场景:获取datetime格式日期的年、月、天。

注意事项:该函数使用客户端计算机的区域设置和日期时间设置来理解文本值。比如计算机的区域设置将日期格式定义为月/日/年,而日期以日/月/年的格式提供,那么22/5/2019将无法被解释为2019年5月22日,而是解释为无效日期。

3.TIME(HOUR,MINUTE,SECOND)

函数作用:拼接小时、分钟、秒,返回datetime格式的时间。

示例:TIME(11,16,54)=11:16:54 

注意事项:hour:高于23的值将被除以24,余数被视为小时值,minute:任何大于59的值都将被转换为小时和分钟,second:任何大于59的值都将被转换为小时、分钟、秒钟,比如TIME(27,0,0)=TIME(3,0,0)=3:00 AM,TIME(0,750,0)=TIME(12,30,0)=12:30 PM。

4.HOUR(TIME),MINUTE(TIME),SECOND(TIME)

函数作用:将datetime格式的时间返回为小时、分钟、秒。

示例:HOUR(11:16:54 )=11,MINIUTE(11:16:54 )=16,SECOND(11:16:54 )=54

5.NOW()和TODAY()

函数作用:获取当前日期。

示例:NOW()=2019/5/22 16:56:15,TOTAY()=2019/5/22 12:00:00

应用场景:应用于计算时间维度是从过往某日截止到当前的场景。

比如,已知某人出生年份为1995,获取年龄,YEAR(NOW())-1995。

注意事项:NOW 函数很相似但返回精确时间,而 TODAY 为所有日期都返回时间值 12:00:00 PM。

6.EDATE(START_DATE,MONTHS)

函数作用:返回在开始日期之前或之后指示的月数的日期。

示例:EDATE(2019/5/22,1)=2019/6/22。

应用场景:按天同比计算。

比如,想将后一月每日的销量与前一月进行对比,就可以用EDATE函数,同比计算问题后面会用独立的篇幅进行说明,此处不进行赘述。

注意事项:MONTHS值可正可负,负值即向前倒推;如果请求的日期过了相应月份的最后一天,则返回该月份的最后一天,比如EDATE(2015/1/28,1),EDATE(2015/1/29,1),EDATE(2015/1/30,1),EDATE(2015/1/31,1)的返回值都为2015/2/28。

7.EOMONTH(START_DATE,MONTHS)

函数作用:返回指定月份数之前或之后的月份的最后一天的日期,该日期采用 datetime 格式。

示例:EOMONTH(2019/5/22,1)=2019/6/30。

应用场景:库存计算。

比如有一种场景,库存按月计算,今天是2019/5/22,欲计算当前库存,需要用4月月底库存+5月库存变动量,库存计算问题后面会用独立的篇幅进行说明,此处不进行赘述。

注意事项:如果输入的月份不是整数,则将该数字向上或向下舍入到最接近的整数,比如EOMONTH("2019/5/22",1.5)的返回值为2019/7/31,因为1.5四舍五入为2。

8.WEEKDAY(DATE,RETURN_TYPE)

函数作用:返回用来标识某一日期是星期几的 1 到 7 之间的数字。 默认情况下,这个星期几的范围是从 1(星期日)到 7(星期六)。

示例:WEEKDAY(2019/5/22,2)=3。2019/5/22是周三。

应用场景:应用于按周进行数据分析的场景。

注意事项:RETURN_TYPE=1,周从星期日 (1) 开始,到星期六 (7) 结束;RETURN_TYPE=2,周从星期一 (1) 开始,到星期日(7) 结束;RETURN_TYPE=3,周从星期一 (0) 开始,到星期日 (6) 结束。

9.WEEKNUM(DATE,RETURN_TYPE)

函数作用:根据RETURN_TYPE 值返回给定日期和年份的周数。 周数指示该周在数字上属于一年中的何处。

示例:WEEKNUM(2019/5/22,2)=21。2019/5/22是2019年的第21周。

应用场景:应用于按周进行数据分析的场景。

注意事项:RETURN_TYPE=1,周从星期日开始。 工作日的编号为 1 到 7;RETURN_TYPE=2,周从星期一开始。 工作日的编号为 1 到 7。

10.YEARFRAC(START_DATE,END_DATE,BASIS)

函数作用:计算两个日期之间的完整天数占全年天数的比例。

示例:YEARFRAC(2019/5/22,2019/6/22,1)=0.8493,这两个日期之间的天数31天占全年天数365的84.93%。

应用场景:计算要从整年的收益或负债中分配给特定期限的比例。

注意事项:BASIS=0,返回类型为US (NASD) 30/360;BASIS=1,返回类型为实际/实际;BASIS=2,返回类型为实际/360;BASIS=3,返回类型为实际/365;BASIS=4,返回类型为欧洲 30/360。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,914评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,935评论 2 383
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,531评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,309评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,381评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,730评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,882评论 3 404
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,643评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,095评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,448评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,566评论 1 339
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,253评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,829评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,715评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,945评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,248评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,440评论 2 348