最近幾個(gè)月,我悠閑得仿佛不像一個(gè)剛?cè)肼毜男率盅矗瓜袷且粋€(gè)混了大半輩子陷猫,兩手一攤就等著油燈枯盡的“那位同志”。
不同的是的妖,“那位同志”活得心安理得绣檬,隨波漂流,或深淵或淺溪羔味,從不擔(dān)心明天是否還會(huì)看見太陽(yáng)升起河咽。而我嘛,還拖著半濕不干的咸魚身軀赋元,期待著被貼上商標(biāo)忘蟹,等待著被人選中、屠宰搁凸、消化媚值、排泄。
可惜海岸太高护糖,我看不到人們的表情褥芒,聽不到人們的聲音,不知道他們何時(shí)才來打撈嫡良,而我锰扶,何時(shí)才能成為人們的盤中餐,口中食寝受。
空閑之際坷牛,我將把DAX函數(shù)分為日期和時(shí)間函數(shù)、篩選器函數(shù)很澄、信息函數(shù)京闰、邏輯函數(shù)、數(shù)學(xué)函數(shù)甩苛、統(tǒng)計(jì)函數(shù)蹂楣、文本函數(shù)7大模塊來進(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è)置來理解文本值草姻。比如計(jì)算機(jī)的區(qū)域設(shè)置將日期格式定義為月/日/年钓猬,而日期以日/月/年的格式提供,那么22/5/2019將無法被解釋為2019年5月22日撩独,而是解釋為無效日期敞曹。
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í)間維度是從過往某日截止到當(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ù)作用:返回在開始日期之前或之后指示的月數(shù)的日期捕儒。
示例:EDATE(2019/5/22,1)=2019/6/22。
應(yīng)用場(chǎng)景:按天同比計(jì)算刘莹。
比如阎毅,想將后一月每日的銷量與前一月進(jìn)行對(duì)比,就可以用EDATE函數(shù)点弯,同比計(jì)算問題后面會(huì)用獨(dú)立的篇幅進(jìn)行說明扇调,此處不進(jìn)行贅述。
注意事項(xiàng):MONTHS值可正可負(fù)蒲拉,負(fù)值即向前倒推肃拜;如果請(qǐng)求的日期過了相應(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ì)算問題后面會(huì)用獨(dú)立的篇幅進(jìn)行說明祭示,此處不進(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ù)作用:返回用來標(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) 開始月趟,到星期六 (7) 結(jié)束;RETURN_TYPE=2恢口,周從星期一 (1) 開始孝宗,到星期日(7) 結(jié)束;RETURN_TYPE=3耕肩,周從星期一 (0) 開始因妇,到星期日 (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,周從星期日開始窜觉。 工作日的編號(hào)為 1 到 7;RETURN_TYPE=2谷炸,周從星期一開始。 工作日的編號(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。