如何在Power BI中将日、月、年、小时列合并为datetime格式列?
Power BI合并分散的年/月/日/小时列为datetime格式的解决方案
方案1:Power Query端处理(优先推荐,性能更好)
- 打开Power Query编辑器,定位到需要处理的数据表
- 点击顶部「添加列」选项卡,选择「自定义列」
- 在弹出的自定义列窗口输入公式:
#datetime([年], [月], [日], [小时], 0, 0)公式中最后两个参数分别对应分钟、秒,如果你有对应存储的分钟/秒列,直接替换0为对应列名即可;如果列名和示例不一致,替换为你实际的字段名
- 确认后生成的新列默认即为datetime类型,若格式异常可手动修改列的数据类型为「日期/时间」
方案2:DAX计算列实现(适合无需调整数据源结构的场景)
你之前用到的DATE函数仅返回日期类型,叠加TIME函数即可得到完整datetime类型:
- 在数据视图中选中目标表,新建计算列
- 输入DAX公式:
完整Datetime = DATE([年], [月], [日]) + TIME([小时], 0, 0)同理,
TIME函数后两个参数对应分钟、秒,有对应字段直接替换为你的列名即可 - 若需要调整显示格式,可在「列工具」选项卡的格式设置中选择你需要的日期时间显示样式
注意事项
- 操作前请确保年/月/日/小时列均为数值类型,若为文本格式需先转换为数值再执行上述操作,避免报错
- 若数据中存在无效日期(如13月、2月30日等),可增加错误处理逻辑:
- Power Query端公式调整为:
try #datetime([年], [月], [日], [小时], 0, 0) otherwise null - DAX端公式调整为:
完整Datetime = IFERROR(DATE([年], [月], [日]) + TIME([小时], 0, 0), BLANK())
- Power Query端公式调整为:
内容的提问来源于stack exchange,提问作者yts61
相关产品推荐
相关产品推荐

