POWER BI DAX函數(shù)應(yīng)用-日期和時(shí)間函數(shù)

最近幾個(gè)月,我悠閑得仿佛不像一個(gè)剛?cè)肼毜男率郑瓜袷且粋€(gè)混了大半輩子,兩手一攤就等著油燈枯盡的“那位同志”。

不同的是,“那位同志”活得心安理得,隨波漂流,或深淵或淺溪,從不擔(dān)心明天是否還會(huì)看見(jiàn)太陽(yáng)升起。而我嘛,還拖著半濕不干的咸魚(yú)身軀,期待著被貼上商標(biāo),等待著被人選中、屠宰、消化、排泄。

可惜海岸太高,我看不到人們的表情,聽(tīng)不到人們的聲音,不知道他們何時(shí)才來(lái)打撈,而我,何時(shí)才能成為人們的盤(pán)中餐,口中食。

空閑之際,我將把DAX函數(shù)分為日期和時(shí)間函數(shù)、篩選器函數(shù)、信息函數(shù)、邏輯函數(shù)、數(shù)學(xué)函數(shù)、統(tǒng)計(jì)函數(shù)、文本函數(shù)7大模塊來(lái)進(jìn)行逐步介紹。


本篇詳細(xì)介紹日期和時(shí)間函數(shù)。

1.DATE(YEAR,MONTH,DAY)

函數(shù)作用:拼接年、月、天,返回datetime格式的日期。

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

應(yīng)用場(chǎng)景:將非datetime的日期轉(zhuǎn)化為datetime格式。

比如要將20190522這種非標(biāo)準(zhǔn)的日期格式轉(zhuǎn)化為datetime格式,可先用left、mid、right函數(shù)將20190522拆為2019(年),05(月),22(天),再使用DATE函數(shù)將其轉(zhuǎn)換為datetime格式的2019/5/22。

注意事項(xiàng):

年份<100時(shí),自動(dòng)加上1900,比如,如果年份為99,那么將加上1900,返回值為1999。

月份>12或月份<1時(shí),自動(dòng)向后一年順延或向前一年倒推,比如20151501的返回值為2016/3/1,2015-120的返回值為2014/11/20。

天份>當(dāng)月最大天或天份<1時(shí),自動(dòng)向后一月順延或向前一月倒推,比如20150232的返回值為2015/3/4,201502-1的返回值為2015/1/30。

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

函數(shù)作用:以 1900-9999 范圍的四位整數(shù)形式返回日期的年份,以1-12范圍的整數(shù)形式返回日期的月份,以1-31范圍的整數(shù)形式返回日期的天份。

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

應(yīng)用場(chǎng)景:獲取datetime格式日期的年、月、天。

注意事項(xiàng):該函數(shù)使用客戶端計(jì)算機(jī)的區(qū)域設(shè)置和日期時(shí)間設(shè)置來(lái)理解文本值。比如計(jì)算機(jī)的區(qū)域設(shè)置將日期格式定義為月/日/年,而日期以日/月/年的格式提供,那么22/5/2019將無(wú)法被解釋為2019年5月22日,而是解釋為無(wú)效日期。

3.TIME(HOUR,MINUTE,SECOND)

函數(shù)作用:拼接小時(shí)、分鐘、秒,返回datetime格式的時(shí)間。

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

注意事項(xiàng):hour:高于23的值將被除以24,余數(shù)被視為小時(shí)值,minute:任何大于59的值都將被轉(zhuǎn)換為小時(shí)和分鐘,second:任何大于59的值都將被轉(zhuǎn)換為小時(shí)、分鐘、秒鐘,比如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)

函數(shù)作用:將datetime格式的時(shí)間返回為小時(shí)、分鐘、秒。

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

5.NOW()和TODAY()

函數(shù)作用:獲取當(dāng)前日期。

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

應(yīng)用場(chǎng)景:應(yīng)用于計(jì)算時(shí)間維度是從過(guò)往某日截止到當(dāng)前的場(chǎng)景。

比如,已知某人出生年份為1995,獲取年齡,YEAR(NOW())-1995。

注意事項(xiàng):NOW 函數(shù)很相似但返回精確時(shí)間,而 TODAY 為所有日期都返回時(shí)間值 12:00:00 PM。

6.EDATE(START_DATE,MONTHS)

函數(shù)作用:返回在開(kāi)始日期之前或之后指示的月數(shù)的日期。

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

應(yīng)用場(chǎng)景:按天同比計(jì)算。

比如,想將后一月每日的銷量與前一月進(jìn)行對(duì)比,就可以用EDATE函數(shù),同比計(jì)算問(wèn)題后面會(huì)用獨(dú)立的篇幅進(jìn)行說(shuō)明,此處不進(jìn)行贅述。

注意事項(xiàng):MONTHS值可正可負(fù),負(fù)值即向前倒推;如果請(qǐng)求的日期過(guò)了相應(yīng)月份的最后一天,則返回該月份的最后一天,比如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)

函數(shù)作用:返回指定月份數(shù)之前或之后的月份的最后一天的日期,該日期采用 datetime 格式。

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

應(yīng)用場(chǎng)景:庫(kù)存計(jì)算。

比如有一種場(chǎng)景,庫(kù)存按月計(jì)算,今天是2019/5/22,欲計(jì)算當(dāng)前庫(kù)存,需要用4月月底庫(kù)存+5月庫(kù)存變動(dòng)量,庫(kù)存計(jì)算問(wèn)題后面會(huì)用獨(dú)立的篇幅進(jìn)行說(shuō)明,此處不進(jìn)行贅述。

注意事項(xiàng):如果輸入的月份不是整數(shù),則將該數(shù)字向上或向下舍入到最接近的整數(shù),比如EOMONTH("2019/5/22",1.5)的返回值為2019/7/31,因?yàn)?.5四舍五入為2。

8.WEEKDAY(DATE,RETURN_TYPE)

函數(shù)作用:返回用來(lái)標(biāo)識(shí)某一日期是星期幾的 1 到 7 之間的數(shù)字。 默認(rèn)情況下,這個(gè)星期幾的范圍是從 1(星期日)到 7(星期六)。

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

應(yīng)用場(chǎng)景:應(yīng)用于按周進(jìn)行數(shù)據(jù)分析的場(chǎng)景。

注意事項(xiàng):RETURN_TYPE=1,周從星期日 (1) 開(kāi)始,到星期六 (7) 結(jié)束;RETURN_TYPE=2,周從星期一 (1) 開(kāi)始,到星期日(7) 結(jié)束;RETURN_TYPE=3,周從星期一 (0) 開(kāi)始,到星期日 (6) 結(jié)束。

9.WEEKNUM(DATE,RETURN_TYPE)

函數(shù)作用:根據(jù)RETURN_TYPE 值返回給定日期和年份的周數(shù)。 周數(shù)指示該周在數(shù)字上屬于一年中的何處。

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

應(yīng)用場(chǎng)景:應(yīng)用于按周進(jìn)行數(shù)據(jù)分析的場(chǎng)景。

注意事項(xiàng):RETURN_TYPE=1,周從星期日開(kāi)始。 工作日的編號(hào)為 1 到 7;RETURN_TYPE=2,周從星期一開(kāi)始。 工作日的編號(hào)為 1 到 7。

10.YEARFRAC(START_DATE,END_DATE,BASIS)

函數(shù)作用:計(jì)算兩個(gè)日期之間的完整天數(shù)占全年天數(shù)的比例。

示例:YEARFRAC(2019/5/22,2019/6/22,1)=0.8493,這兩個(gè)日期之間的天數(shù)31天占全年天數(shù)365的84.93%。

應(yīng)用場(chǎng)景:計(jì)算要從整年的收益或負(fù)債中分配給特定期限的比例。

注意事項(xiàng):BASIS=0,返回類型為US (NASD) 30/360;BASIS=1,返回類型為實(shí)際/實(shí)際;BASIS=2,返回類型為實(shí)際/360;BASIS=3,返回類型為實(shí)際/365;BASIS=4,返回類型為歐洲 30/360。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容