在PowerBI中将UTC日期时间转换为本地日期时间

在PowerBI中将UTC日期时间转换为本地日期时间,powerbi,Powerbi,在我的PowerBI数据源(表存储)中,我有一个DateTime列,其中包含UTC日期时间。我想把它转换成本地日期时间。具体来说,我还想考虑夏令时 我在网上找到了几种解决方案,但都没有考虑DST。有人能给我一些建议吗 我希望用户看到的时区是UTC+2(比利时/布鲁塞尔) 最好是在PowerBI桌面、手机和网站上看到我正在回答这个老问题,因为我发现这个问题是搜索中的第一个热门问题,它是非常常见且经常被问到的问题。请注意,这主要适用于“隐式”假定UTC但不使用行/字段值存储此信息的数据源,例如具有“

在我的PowerBI数据源(表存储)中,我有一个DateTime列,其中包含UTC日期时间。我想把它转换成本地日期时间。具体来说,我还想考虑夏令时

我在网上找到了几种解决方案,但都没有考虑DST。有人能给我一些建议吗

我希望用户看到的时区是UTC+2(比利时/布鲁塞尔)


最好是在PowerBI桌面、手机和网站上看到

我正在回答这个老问题,因为我发现这个问题是搜索中的第一个热门问题,它是非常常见且经常被问到的问题。请注意,这主要适用于“隐式”假定UTC但不使用行/字段值存储此信息的数据源,例如具有“DateTime”列的SQL Server源

要查询数据,从而从表中读取数据,可以执行以下操作:

该方法通过客户端动态考虑时区(用户本地时区),因此也自动考虑DST,如下所示:

您需要在“查询编辑器”中创建一个自定义列,并需要为每个原始列再添加两个自定义列(单击“添加自定义列”):

  • 将时区“UTC”作为基线并为每个条目存储它的一种。只有在您的专栏尚未包含它的情况下,才需要这样做。公式为:“DateTime.AddZone([Time],0)”
  • 然后存储转换后的本地时区值(在查询/导入时间(!)从客户端)。要使用的公式是:“DateTimeZone.SwitchZone([ZoneTime],[UTC])”

对于大型和复杂的数据结构(有许多表),这不是一种很好的方法。因此,另一种解决方案是使用PowerBI生态系统中的“数据流”实用程序,在报告中使用数据之前,以类似流的方式转换数据。在这样的流程中,在Power BI中消化时区“UTC”列之前,请添加该列(步骤1)。

我不确定是否有简便的解决方案。您希望用户看到哪个本地时区,以及在哪个界面上(Power BI桌面、Power BI服务网站、Power BI移动应用程序、Power BI Windows通用应用程序)?@TomBlodget我已在问题中澄清了这一点。谢谢。您可以使用DAX公式手动转换。同意@user5226582。“总部办公室”时区案是最可解决的。(用户位置、偏好和“当地办事处”的情况要困难得多。)如果您所有的日期都是[见布鲁塞尔]或更晚,并且您不担心未来DST规则可能发生的变化,我认为解决方案是在一些公式中硬编码。我担心情况会是这样。我现在正在考虑更新我的代码,在我的数据存储中添加一个额外的列,同时使用本地日期时间。遗憾的是,这并没有得到某种方式的支持。