PowerBI/Power Query:Unix时间戳转PQ DateTime报错求助
解决PowerBI中Unix时间戳转DateTime的问题
错误原因
你用反了计算逻辑:Unix时间戳是从1970-01-01 00:00:00 UTC开始的秒数,而PowerBI的DateTime.From()函数接收的是从1899-12-30开始的天数。将秒数乘以86400(一天的秒数)会得到远超合理范围的数值,直接触发格式错误。
正确转换方法
方法1:使用内置专用函数(推荐)
PowerBI提供了直接处理秒级Unix时间戳的函数,一步到位:
date_output = DateTime.FromUnixSeconds([upLoad_date])
如果你的时间戳是毫秒级(13位数字),替换为DateTime.FromUnixMilliseconds()即可。
方法2:手动计算(兼容旧版本)
若因版本限制无法使用内置函数,可通过天数转换实现:将秒数转为天数(除以86400),再加上Unix纪元(1970-01-01)与PowerBI基准日期(1899-12-30)的差值(25569天):
date_output = DateTime.From(25569 + [upLoad_date]/86400)
额外注意事项
- 确认
upLoad_date为整数类型:如果是文本格式,先通过INT([upLoad_date])转换为整数后再计算。 - 时区转换:
DateTime.FromUnixSeconds()默认输出UTC时间,若需转为本地时区,用以下公式:date_output = DateTimeZone.ToLocal(DateTime.FromUnixSeconds([upLoad_date]))
内容的提问来源于stack exchange,提问作者db2020
相关产品推荐
相关产品推荐

