对于Power BI使用者来说,报告最后更新的日期时间是个挺重要的信息。在报告中一般显示在四个边角处,如下图所示。
通过Power Query 可以轻松获取数据刷新最后时间戳,并生成一个单列单行的独立表格。下面介绍三种方式。
方法一 DateTime.LocalNow()
通过这个函数可以生成一个表,该表存储数据模型每次刷新时的当前时间。这种方法的不足在于,以下三个场景可能造成时间的时区不统一:
方法二 DateTimeZone.FixedUtcNow()
DateTimeZone.SwitchZone(DateTimeZone.FixedUtcNow(),8),通过加减时差来避免时区差异产生的问题。这种方法也有弊端,即实行冬夏令时的国家地区,时差是不固定的,每年需要调整2次。
方法三 调用接口
通过网站(如http://worldclockapi.com/)接口,生成固定统一的时间。首先在Power Qury 新建一个空白查询,然后点击查询编辑器,输入以下代码,就会创建一个生成最新更新时间日期的函数查询。
let fn = () =>
let
Quelle = Json.Document(Web.Contents("http://worldclockapi.com/api/json/cet/now")),
#"In Tabelle konvertiert" = Record.ToTable(Quelle),
#"Gefilterte Zeilen" = Table.SelectRows(#"In Tabelle konvertiert", each ([Name] = "currentDateTime")),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Gefilterte Zeilen",{{"Value", type datetimezone}}),
Output = Table.TransformColumnTypes(#"Geänderter Typ",{{"Value", type datetime}})[Value]{0}
in
Output,
fnType = type function () as list meta
[
Documentation.Name = " fnGetTimeFromAPI ",
Documentation.Description = "This function gets the current time (CET), using the API >>http://worldclockapi.com<<",
Documentation.Parameters = "",
Documentation.Category = " "
]
in
Value.ReplaceType(fn, fnType)
点击invoke调用后生成我们所需的时间表。
报表界面展示
在Power BI报表界面上显示该日期,最好用DAX建一个度量值,方便后续其他度量值的调用。度量值写法如下所示。
最后更新时间 =
"报告最后更新时间" & UNICHAR ( 10 )
& FORMAT ( VALUES ( '最后更新时间表'[时间] ), "dd/mm/yyyy hh:mm:ss" )
最后用一个卡片图视觉对象展示即可。
注:本文节译自德国PowerBI MVP-Lars Schreiber的博客,原文代码中德语标点已改为英文标点,详见原文链接
本文分享自 PowerBI x Python 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!