Power BI服务中时间显示错误的解决办法

也许很多人都遇到过这个困惑,做好的可以正常显示本地时间的报告,发布到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的问题,开心。


感谢AgnesJ的分享,如果你仔细看文章中的示例,应该注意到了,她是身在巴黎的小姐姐哦,Power BI用的非常溜,果然PowerBI爱好者遍布全世界。

对了,上次分享PowerBI认证考试经验的也是她哦,如果你还没有看过这篇文章,推荐你好好看一下:


(0)

相关推荐

  • 理解Excel及其Power系列功能、PowerBI的关系

    小勤:大海,你最近一直叫我学Power Query,Power BI之类的,他们到底是啥呀?有啥牛B的呀? 大海:这个我很难给你解释,不过,既然你感兴趣,我先虎妈或度娘一下给你他们有多牛B好了.关于P ...

  • PBI-基础入门:Power BI的基本组成

    Power BI主要有3大块产品组成: PowerBI Desktop:即数据分析人员用来做数据处理.构建模型和数据分析的客户端,是数据模型和分析的设计器. PowerBI Service:即经过Po ...

  • Power BI技巧:时间维度动态折叠显示

    文/Beau 数据分析爱好者,擅长PBI数据分析 本文灵感来自于星球球友的一个求助帖,他的诉求是可以在矩阵中对于日期类型的列标题进行动态折叠显示. 何为折叠呢? 简单的说就是当切片器选择日期长度超过一 ...

  • Power BI Desktop 中的 DAX 基本概念

    在 Power BI Desktop 中应用 DAX 的基础知识 2019/10/21 M o 本文适用于刚开始使用 Power BI Desktop 的用户. 为你提供有关如何使用数据分析表达式 ( ...

  • 如何填充Power BI矩阵中的空白?

    经常会遇到这样的问题,如何对可视化的表格或者矩阵中出现的空白,进行向下填充数据?从PowerBI功能上来说,并没有这个设置,无法直接对可见的单元格数据进行操作. 但从数据的计算逻辑上并非不能实现,就是 ...

  • Intellij IDEA在controller中使用@Autowired注解,出现could not autowire错误,解决办法

    Intellij IDEA在controller中使用@Autowired注解,出现could not autowire错误,解决办法

  • 当Power BI遇上数学:用DAX解决数据的循环迭代

    本文来自PowerBI星球嘉宾Davis的分享,Davis曾在知乎上发表过数篇高质量的PowerBI文章,是不折不扣的PowerBI技术大神.当我邀请他为星友们也分享一些干货时,他欣然同意,于是有了这 ...

  • AD中的网络命名重复错误的解决办法

    Altium Designer-Duplicate Net Names Wire XXX 今天早上突然遇到这个问题,在单片机的插座上引出通用IO,两个名字相同的网络报错:网络标号重复;很纳闷以前也是这 ...

  • 【摩西哲学】外汇市场常见的交易错误和解决办法!

    外汇市场常见的交易错误和解决办法! 外汇交易好比一场马拉松耐力跑,一段路程的领先并不能代表最终的胜利,整场交易赛道中没有重复的道路. 偶尔几次的加速冲刺似乎很容易,但要不断地进行长跑策略的优化.时刻保 ...

  • 便秘吃蜂蜜的最佳时间?便秘的最好解决办法?

    便秘吃蜂蜜的最佳时间?便秘的最好解决办法? 蜂蜜是大众很喜欢的食品,不仅甜润好吃,还有助消化的作用,那便秘吃蜂蜜的最佳时间是什么时候呢? 蜂蜜的食用没有时间限制,随时想喝就可以喝,便秘吃蜂蜜如此,没有 ...

  • 烫印作业中常见的缺陷及解决办法

    烫印作业是利用热压作用,使热熔性有机硅树脂脱落层和胶黏剂熔化,熔化后的热熔性有机硅树脂黏合力降低,使得电化铝中的铝箔层从聚酯基膜上剥离,在热压作用下,经过短暂的保压,其背面呈热熔状态的胶黏剂即可有效地 ...