?在某些場(chǎng)景中轨蛤,我們需要告訴用戶,報(bào)表中的數(shù)據(jù)是截止到昨天终议?截止到今天上午税课?2小時(shí)之前?還是10分鐘以前的痊剖,這就需要在報(bào)表中加入如下的內(nèi)容:
今天就和大家來(lái)講一下如何實(shí)現(xiàn)以上的功能韩玩。
我們很容易想到,在DAX語(yǔ)言中有一個(gè)NOW函數(shù)陆馁,用來(lái)獲取當(dāng)前的日期和時(shí)間:
我們來(lái)測(cè)試一下找颓,輸入公式,得到數(shù)據(jù):
用卡片圖呈現(xiàn)出來(lái):
點(diǎn)擊刷新叮贩,可以看到每次刷新數(shù)據(jù)击狮,都會(huì)更新一個(gè)最新的時(shí)間佛析。
將報(bào)表發(fā)布到云端,再來(lái)查看一下彪蓬。
沒(méi)有問(wèn)題寸莫。
但是!如果到云端進(jìn)行刷新档冬,就會(huì)發(fā)現(xiàn)時(shí)間變?yōu)榱?點(diǎn)多膘茎,跟發(fā)布的時(shí)間很明顯是不一致的,為什么會(huì)這樣呢酷誓?
因?yàn)閜owerbi本地刷新和云端刷新是不同的披坏,本地刷新,NOW返回的是當(dāng)前的系統(tǒng)時(shí)間盐数,也就是UTC/GMT+08:00時(shí)間棒拂,而云端刷新的時(shí)間是按照UTC時(shí)間來(lái)的,所以兩者差了8個(gè)小時(shí)玫氢。
所以如果想在云端刷新時(shí)顯示正確的當(dāng)?shù)貢r(shí)間帚屉,應(yīng)當(dāng)在原來(lái)的時(shí)間上+8小時(shí),但是這樣一來(lái)漾峡,又會(huì)出問(wèn)題涮阔,那就是如果修改本地文件并再次發(fā)布時(shí),時(shí)間就會(huì)比當(dāng)前早8個(gè)小時(shí)灰殴。
也就是說(shuō)敬特,使用NOW無(wú)法同時(shí)滿足本地發(fā)布和云端刷新的需要。
那應(yīng)當(dāng)怎么辦呢牺陶?
這時(shí)候我們?cè)撚玫経TCNOW函數(shù)了伟阔,顧名思義,這表示的是UTC時(shí)間的當(dāng)前時(shí)間掰伸,這樣只要寫(xiě)出如下的表達(dá)式皱炉,就能正確得到本地的準(zhǔn)確時(shí)間了:
當(dāng)前時(shí)間?=?UTCNOW()+"08:00:00"
再次發(fā)布到云端,刷新看一下:
這樣狮鸭,我們就可以同時(shí)在本地和云端分別刷新都得到正確的刷新時(shí)間了合搅。
你學(xué)會(huì)了嗎?
這里我們需要注意歧蕉,以上兩張gif中灾部,點(diǎn)擊網(wǎng)頁(yè)端報(bào)表頁(yè)面的刷新按鈕,僅僅是將數(shù)據(jù)刷新到數(shù)據(jù)源中的最新惯退,而不會(huì)真的更新數(shù)據(jù)赌髓,因?yàn)橐坏﹫?bào)表發(fā)布后,只要不在數(shù)據(jù)源中點(diǎn)擊立即刷新,報(bào)表中的數(shù)據(jù)是不會(huì)變的锁蠕。
但夷野,事實(shí)真的是這樣的嗎?且看下圖:
我們可以看到荣倾,在這個(gè)gif中悯搔,我們點(diǎn)擊報(bào)表頁(yè)面的刷新按鈕,當(dāng)前時(shí)間是一直在變的舌仍,一直顯示當(dāng)前的本地時(shí)間妒貌,這個(gè)是怎么做到的呢?
還有另外一個(gè)問(wèn)題抡笼,就是我們事先知道當(dāng)?shù)氐臅r(shí)區(qū)苏揣,所以才會(huì)在UTC上+8小時(shí)黄鳍,如果恰好不知道時(shí)區(qū)呢推姻?有沒(méi)有不需要知道時(shí)區(qū)就通用的公式呢?辦法肯定是有的框沟。
敬請(qǐng)關(guān)注本公眾號(hào)藏古,查看后續(xù)講解。
————————————————————