Power Automate中Excel含时间的浮点日期转Dataverse表失败求助
解决Power Automate中Excel浮点日期转Dataverse日期时间的问题
方法1:Power Automate内置函数直接转换
用convertFromUtc+addDays组合公式,把Excel的浮点日期转成Dataverse兼容的格式:
convertFromUtc(addDays('1899-12-30', float(triggerBody()?['Excel日期列'])), 'UTC')
- 原理:Excel日期以
1899-12-30为基准,浮点值的整数部分是距离该基准的天数,小数部分是当日时间占比 - 替换公式里的
Excel日期列为你实际的列名即可
方法2:Excel端预处理
直接在Excel里把浮点日期转成标准格式,避免流里的转换操作:
- 选中目标日期列,右键「设置单元格格式」→ 选「日期」分类下带时间的格式(比如
yyyy/mm/dd hh:mm:ss) - 处理后Power Automate读取到的就是标准日期时间,可直接存入Dataverse
方法3:拆分日期+时间精确处理
如果需要单独控制日期和时间部分,用以下组合公式:
convertFromUtc(addSeconds(addDays('1899-12-30', int(triggerBody()?['Excel日期列'])), mul(sub(float(triggerBody()?['Excel日期列']), int(triggerBody()?['Excel日期列'])), 86400)), 'UTC')
- 拆解:
int()提取浮点值的整数部分,用addDays()算出基础日期- 小数部分乘以86400(一天的总秒数)得到当日的秒数,用
addSeconds()加到基础日期上 - 最后转成UTC格式适配Dataverse
关键注意点
- 确认Dataverse对应的字段类型是日期时间(不是仅「日期」类型)
- 如果Excel里的浮点日期是文本格式,先转成数值类型再用上述公式
- 调试时可以用「Compose」动作输出转换结果,确认格式正确后再写入Dataverse
内容的提问来源于stack exchange,提问作者zemunkh
相关产品推荐
相关产品推荐

