我正在基于 SQL Server 表 User 中的数据构建 Power BI 报告,该表包含一个类型为 DateTypeOffset(7) 的 CreatedDate 列。我正在寻找与 .NET [TimeZoneInfo.FindSystemTimeZoneById] 等效的 Power Query。我的报告数据具有存储为标准 ID(例如 Pacific Standard Time)的时区信息,我需要将 DateTimeOffset 列中的值转换为上述时区的时间,这是我在 C# 中实现的方法:
TimeSpan timeZoneOffsetSpan = TimeZoneInfo.FindSystemTimeZoneById(settings.TimeZone).GetUtcOffset(UserCreatedDateTime);
这使我得出了“用户创建时间”存储的时区与UTC之间的时间差。因为上面的代码的目的是考虑夏令时等时区特征,以找出当前偏移量,并且我只需执行该行代码一次即可对我的User表中的所有行进行操作。
现在,我可以通过使用[DateTimeOffset.ToOffset]在我的C#代码中将该偏移量(可能为正数或负数)添加到User.CreateDateTime列中的每个值中:
DateTimeOffset convertedOffset = UserCreatedDateTime.ToOffset(timeZoneOffsetSpan)
我需要在我的Power BI报告中进行相同的转换,但是我找不到任何Power Query函数可以像[TimeZoneInfo.FindSystemTimeZoneById]一样完成相同的工作。如果存在该函数,则将使用它来替代我的C#代码首行,然后我需要找到与[TimeZoneInfo.FindSystemTimeZoneById]等效的函数。[DateTimeZone.SwitchZone]可能是我需要的,但是我首先需要知道对应于我的时区的偏移量,然后才能将该偏移量作为第二个和第三个参数提供给该函数。
因此,最终我需要找到Power BI的类似功能来实现[TimeZoneInfo.FindSystemTimeZoneById]。 有人能帮帮我吗?