日期时间字符串格式无效问题排查:ISO8601格式及表达式疑问
日期时间字符串格式错误排查与解决
遇到的错误提示:日期时间字符串无效。该日期时间字符串必须匹配ISO 8601格式,即便你认为已使用预期格式,函数仍报错,以下是问题根源和修复方案:

你当前使用的表达式:
@greater(ticks(formatDateTime(activity('GetLastModifiedDate').output.lastModified, 'yyyy-MM-ddTHH:mm:ss.fffffffK')),ticks(formatDateTime(variables('varReferenceDateTime'), 'yyyy-MM-ddTHH:mm:ss.fffffffK')) )]
问题根源
- 语法错误:表达式末尾多了多余的
)],@greater()函数仅需一个闭合括号),多余符号会导致解析失败。 - 冗余格式转换:ADLS Gen2返回的
lastModified字段本身就是标准ISO 8601格式的日期字符串,无需再用formatDateTime二次转换;如果varReferenceDateTime也是标准格式,同样不需要转换,多余的格式处理反而可能引入格式不兼容问题。
修复后的表达式
情况1:两个日期均为标准ISO 8601格式
直接简化表达式,去掉冗余的formatDateTime:
@greater(ticks(activity('GetLastModifiedDate').output.lastModified), ticks(variables('varReferenceDateTime')))
情况2:varReferenceDateTime非标准格式
如果确认varReferenceDateTime不是ISO格式,再用formatDateTime转换为标准格式(注意格式符要严格匹配ISO规范):
@greater(ticks(activity('GetLastModifiedDate').output.lastModified), ticks(formatDateTime(variables('varReferenceDateTime'), 'yyyy-MM-ddTHH:mm:ssZ')))
内容的提问来源于stack exchange,提问作者mkn
相关产品推荐
相关产品推荐

