美文网首页学谦PowerBI
【PowerBI技巧】如何显示数据更新时间

【PowerBI技巧】如何显示数据更新时间

作者: PowerBI生命管理大师学谦 | 来源:发表于2020-04-08 18:49 被阅读0次

    ​在某些场景中,我们需要告诉用户,报表中的数据是截止到昨天?截止到今天上午?2小时之前?还是10分钟以前的,这就需要在报表中加入如下的内容:

    今天就和大家来讲一下如何实现以上的功能。

    我们很容易想到,在DAX语言中有一个NOW函数,用来获取当前的日期和时间:

    我们来测试一下,输入公式,得到数据:

    用卡片图呈现出来:

    点击刷新,可以看到每次刷新数据,都会更新一个最新的时间。

    将报表发布到云端,再来查看一下。

    没有问题。

    但是!如果到云端进行刷新,就会发现时间变为了8点多,跟发布的时间很明显是不一致的,为什么会这样呢?

    因为powerbi本地刷新和云端刷新是不同的,本地刷新,NOW返回的是当前的系统时间,也就是UTC/GMT+08:00时间,而云端刷新的时间是按照UTC时间来的,所以两者差了8个小时。

    所以如果想在云端刷新时显示正确的当地时间,应当在原来的时间上+8小时,但是这样一来,又会出问题,那就是如果修改本地文件并再次发布时,时间就会比当前早8个小时。

    也就是说,使用NOW无法同时满足本地发布和云端刷新的需要。

    那应当怎么办呢?

    这时候我们该用到UTCNOW函数了,顾名思义,这表示的是UTC时间的当前时间,这样只要写出如下的表达式,就能正确得到本地的准确时间了:

    当前时间 = UTCNOW()+"08:00:00"

    再次发布到云端,刷新看一下:

    这样,我们就可以同时在本地和云端分别刷新都得到正确的刷新时间了。

    你学会了吗?

    这里我们需要注意,以上两张gif中,点击网页端报表页面的刷新按钮,仅仅是将数据刷新到数据源中的最新,而不会真的更新数据,因为一旦报表发布后,只要不在数据源中点击立即刷新,报表中的数据是不会变的。

    但,事实真的是这样的吗?且看下图:

    我们可以看到,在这个gif中,我们点击报表页面的刷新按钮,当前时间是一直在变的,一直显示当前的本地时间,这个是怎么做到的呢?

    还有另外一个问题,就是我们事先知道当地的时区,所以才会在UTC上+8小时,如果恰好不知道时区呢?有没有不需要知道时区就通用的公式呢?办法肯定是有的。

    敬请关注本公众号,查看后续讲解。

    ————————————————————

    相关文章

      网友评论

        本文标题:【PowerBI技巧】如何显示数据更新时间

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