Power Automate计算SharePoint Excel入职日期与今日日期差报错求助
解决Power Automate中日期差值计算表达式无效的问题
原表达式的错误点
- 日期格式符错误:
'yyy-MM-dd'缺少一个年份占位符,应为'yyyy-MM-dd',格式错误会导致formatDateTime生成无效日期,进而让ticks函数报错。 - 字段引用错误:直接写
DOJ无法被Power Automate识别为Excel表格中的字段,需要使用动态内容的正确引用格式。 - (可选)若Excel中DOJ列是文本格式,未转换为日期对象会导致后续函数无法处理。
修正后的表达式
情况1:DOJ是日期格式的Excel字段(在循环中)
div(sub(ticks(formatDateTime(items('Apply_to_each')?['DOJ'], 'yyyy-MM-dd')), ticks(addDays(utcNow(), -1))), 864000000000)
情况2:DOJ是文本格式的Excel字段(先解析为日期)
div(sub(ticks(parseDateTime(items('Apply_to_each')?['DOJ'], 'yyyy-MM-dd')), ticks(addDays(utcNow(), -1))), 864000000000)
关键修正说明
- 格式符修正:将
yyy改为yyyy,确保年份格式正确,formatDateTime能输出合法的日期字符串。 - 字段引用修正:通过
items('Apply_to_each')?['DOJ']正确引用循环中当前行的DOJ字段(Apply_to_each是循环步骤的名称,需替换为你实际的循环名称)。 - 文本转日期:如果DOJ是文本类型,用
parseDateTime先将其转换为日期对象,避免ticks函数因输入非日期值报错。
可选调整:计算DOJ与今日的差值
如果你的需求是计算入职日期到今日的天数,而非昨天,可将表达式调整为:
div(sub(ticks(utcNow()), ticks(formatDateTime(items('Apply_to_each')?['DOJ'], 'yyyy-MM-dd'))), 864000000000)
内容的提问来源于stack exchange,提问作者Savitha
相关产品推荐
相关产品推荐

