当我们将做好的PowerBI表发到Service上后,那么我们就可以设置一个自动刷新的时间,报表就可以自动刷新数据了。这时我们想在报端前端记录一下该报告刷新的时间,用来提示用户该报表的数据已经刷新过了。
我们可以利用PowerQuery制作一个表,专门存放数据每次刷新的时间,这里有两点需要注意:
1. 这个时间只是一个近似的时间
2. PowerBI service端的时间是UTC标准时间。换句话理解,PowerBI Service端的时区是0,而我们的时区是+8,所以我们本地刷新的时间,在Service上总是要慢8个小时。
为了能够在本地看到的刷新时间与Service端保持一致,那我们应该用0时区的设置刷新时间。
在这里我们先简单介绍三个M函数:
1. DateTimeZone.RemoveZone() : 该函数的作用是移除有关时区的信息,并返回一个DateTime值。

+08:00 就是有关时区的信息,DateTimeZone.RemoveZone()返回的作用就是去掉它。
2. DateTimeZone.UtcNow() :该函数的作用是返回当前0时区的时间,并带着有关时区的信息。

3. DateTimeZone.SwitchZone(): 该函数的作用将给定的时间转换成给定的时区的时间
所以我们可以利用以上三个函数来写刷新时间,其步骤如下:
1. 建立空白查询,并输入:
DateTimeZone.RemoveZone(DateTimeZone.SwitchZone(DateTimeZone.UtcNow(),8))
2. 将空白查询转换成表:

这样我们就可以在前端使用这张表的值来近似表达报告的刷新时间,这样的话,无论是在本地端还是Service端你看到的时间都和你系统时间保持一致了。这里我就不具体展示了。
只要我们知道了Service端的时间采用的时区是0时区,而我们本地的时区是8(或者其他),达到上述的效果方法有很多,函数有很多。
好了,我是BISeven,欢迎与我进行交流。




