美文网首页PowerBI专栏商业智能BI那点事儿Power BI干货
Power BI服务中时间显示错误?这几个办法送给你

Power BI服务中时间显示错误?这几个办法送给你

作者: PowerBI星球 | 来源:发表于2020-02-26 20:33 被阅读0次

​本文来自PowerBI星球嘉宾AgnesJ的分享,关于PowerBI Service 中显示时间的问题。

也许很多人都遇到过这个困惑,做好的可以正常显示本地时间的报告,发布到web后,时间却不正确了,这篇文章就告诉你原因以及解决的办法。

解决POWERBI服务中显示时间错误的问题

FIX POWER BI SERVICE TIMEZONE ISSUE 

作者:AgnesJ

今天想和大家说一说,POWER BI服务中报表显示本地时间"错误"的问题。

POWER BI SERVICE是云服务,也就是说当我们把报表从POWER BI DESKTOP上传到POWER BI SERVICE后,数据集被寄存在Microsoft遍布全球的云服务器中的某一个。

这时,就会存在一个问题 : 我们本地环境的时间和云服务器的当地时间不同。所以,在本地使用一些与时间有关的函数,例如: NOW( ), TODAY( )时,就要考虑到这个情况。

比如,想要在报表中显示一个数据集的刷新时间(RefreshTime)时,有以下两种方法 :

使用DAX函数

Last Refreshed (Local) =

FORMAT(Today();"dd/mm/yyyy")&" " &FORMAT(TIME(HOUR(NOW());MINUTE(NOW());SECOND(NOW()));"hh:mm:ss")

使用Power Query

let

Source=#table(type table[LastRefresh=datetime], {{DateTime.LocalNow()}})

in

Source

此时,在POWERBI DESKTOP中,创建一个measure: [RefreshTime],使用卡片来展示,我们得到此刻的时间: 2019/10/16 17:15:34

但是,将报表上传到POWERBI SERVICE之后,诡异的事情发生了,同一个图表,我的时间却少了2个小时,从17点变成了15点?发生了什么呢?

由于我所在的巴黎,本地时区为CEST UTC+2,所以很明显,POWER BI SERVICE所展示的时间为UTC时间。

那么我们该如何解决这个问题呢?如何保证 POWER BI SERVICE 中显示的时间永远是我们的本地时间?  

我在这里总结了两个方法,希望可以帮到大家。

第一种方法:已经知晓本地时区

同样可以使用DAX或Power Query增添时间,达到强制转换时区的效果。

DAX添加时间

RefreshTime=

FORMAT([Today];"dd-mm-yyyy")&""&" "&" "&FORMAT(TIME(HOUR(NOW())+2;MINUTE(NOW());SECOND(NOW()));"hh:mm:ss")

PowerQuery添加时间

let

Source= #table(type table[LastRefresh=datetime],{{DateTimeZone.SwitchZone(DateTimeZone.UtcNow(),2,0)}})

in

Source

因为我的本地时间和utc时间相差两个小时,所以我分别在两段代码中加了两个小时。

第二种方法:使用第三方的时间数据

使用来自Web的时间,比如以下的两个网站,可以查询全世界各个角落的当地时间和时区信息。

https://www.timeanddate.com/

http://localtimes.info/

我找到了巴黎的当地时间页面:

 https://www.timeanddate.com/worldclock/france/paris

这时,我们使用POWERBI DESKTOP增添新的Web数据源 :

写入链接,

或者直接使用这段代码 :

Let

Source=Web.Page(Web.Contents("http://localtimes.info/Oceania/New_Zealand/Auckland/")),

Data1= Source{1}[Data],

#"ChangedType" = Table.TransformColumnTypes(Data1,{{"Column1", typetext}, {"Column2", type text}}),

date= #"Changed Type"{1}[Column2],

time=#"ChangedType"{0}[Column2],

datetime=DateTime.FromText(date&""&time)

in

datetime

在PQ中进行一些删减操作,

得到最终想要的结果,

使用这种方法,只要网站上的时间是准确的,那我就可以一直得到巴黎的当地,数据集的最终刷新时间啦。

再上传到POWERBI SERVICE上时,

 虽然,网站传过来的时间有时候会有一秒左右的延迟哦。

但是经过一番折腾,总算是解决了这个TimeZone的问题,开心。


-精彩推荐-

PowerBI数据分析和可视化实战案例

PowerBI时间相关的度量值,都在这里了

PDF转Excel,这个秘籍推荐给你

如果你刚开始接触Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手;

采悟 @ PowerBI星球

相关文章

网友评论

    本文标题:Power BI服务中时间显示错误?这几个办法送给你

    本文链接:https://www.haomeiwen.com/subject/loswchtx.html