【发布时间】:2016-03-10 21:09:50
【问题描述】:
我正在根据 SQL Server 表用户中的数据构建 Power BI 报告,该表包含类型为 DateTypeOffset(7) 的 CreatedDate 列。 我正在寻找等效于 .NET [TimeZoneInfo.FindSystemTimeZoneById] 的 Power Query。我的报告数据有一个时区信息,它存储为标准 ID(如 太平洋标准时间),我需要将 DateTimeOffset 列中的值转换为我在上面讨论的时区,这就是我在 C# 中这样做:
TimeSpan timeZoneOffsetSpan = TimeZoneInfo.FindSystemTimeZoneById(settings.TimeZone).GetUtcOffset(UserCreatedDateTime);
这给了我存储在我的设置中的时区时间和 UserCreatedDateTime 的 UTC 时间之间的差异。我只对用户表中的所有行执行该行代码一次,因为上面代码的目的是找出当前偏移量,同时考虑到 DayLightSaving 等时区的功能。
现在我可以在我的 User.CreateDateTime 列中的每个值上简单地添加该偏移量(可以是正数或负数),在 C# 中我使用 [DateTimeOffset.ToOffset] 来做到这一点:
DateTimeOffset convertedOffset = UserCreatedDateTime.ToOffset(timeZoneOffsetSpan)
所以我需要能够在我的 Power BI 报告中进行相同的转换,但我找不到任何可以与 [TimeZoneInfo.FindSystemTimeZoneById] 执行相同操作的 Power Query 函数,如果该函数存在,它将覆盖我的第一行的 C# 代码,然后我需要找到 [TimeZoneInfo.FindSystemTimeZoneById] 的等价物。 [DateTimeZone.SwitchZone] 可能是我需要的,但我首先需要知道与我的时区相对应的偏移量,然后我才能将该偏移量作为第二个和第三个参数提供给该函数。
所以,为了最终确定,我需要 [TimeZoneInfo.FindSystemTimeZoneById] 的 Power BI 模拟。 有人可以帮忙吗?
【问题讨论】:
-
很遗憾,我们在 Power BI 中没有日期时间 format 来格式化 local 时间的 datetimeoffset。截至 2019 年 3 月,日期时间偏移量仅显示在 Power BI 中,偏移量部分隐藏
标签: powerbi powerquery