在Power BI中将Unix时间戳转换为日期时间报错求助
解决Power BI中时间戳转日期时间的问题
早上好呀!我来帮你捋捋这个时间戳转换的问题~
首先,先拆解下你遇到的问题:你用的公式是基于1957年1月1日的基准来计算,但报错大概率和时间戳的单位或者数据类型有关,下面给你几种针对性的解决思路:
先排查基础问题
- 确认[Timestamp]列的数据类型:打开Power Query编辑器,选中该列,检查是否是「整数」或「十进制数」类型。如果是文本类型,先转成数值:
= Table.TransformColumns(源, {{"Timestamp", each Number.FromText(_), type number}}) - 确认时间戳的基准和单位:你的公式用了1957年作为起始点,这不是标准Unix时间戳的基准(标准是1970-01-01),如果是业务系统自定义的基准,那要确认时间戳是秒级还是毫秒级——很多系统会用毫秒作为时间戳单位,直接加秒数就会导致日期异常甚至报错。
针对性解决方案
如果你确定时间戳是以1957-01-01为基准
- 如果是秒级时间戳,确保列是数值类型后,重新运行原公式;如果报错,试试除以1000转成秒(说明是毫秒级):
#datetime(1957,1,1,0,0,0) + #duration(0,0,0,[Timestamp]/1000)
如果是误使用了非标准基准(实际是标准Unix时间戳)
- 直接用Power BI内置的函数更省心,秒级时间戳用:
DateTime.FromUnixTimeSeconds([Timestamp]) - 毫秒级时间戳用:
DateTime.FromUnixTimeMilliseconds([Timestamp])
额外排查技巧
如果还是报错,看看具体的错误提示(比如“无法将值转换为时间”),可以筛选出[Timestamp]列的异常值(比如负数、非数值内容),先清理这些脏数据再尝试转换。
内容的提问来源于stack exchange,提问作者Equinox




