使用Azure Logic Apps无法读取Excel表格中DateTime数据求助
解决Azure Logic Apps中Excel DateTime转SQL格式问题
常见问题及解决方法
Excel日期为数值型(Excel内部存储格式)
Excel会把日期存为从1899-12-30开始的数字,直接用parseDateTime会报错,需用以下公式转换:addDays('1899-12-30', int(triggerBody()?['你的Excel日期列名']), 'yyyy-MM-dd HH:mm:ss')parseDateTime格式参数不匹配
必须严格对应Excel里的日期文本格式,比如:- Excel日期是
2024/05/20,用:parseDateTime(triggerBody()?['日期列'], 'yyyy/MM/dd') - Excel日期是
20-05-2024,用:parseDateTime(triggerBody()?['日期列'], 'dd-MM-yyyy') - 带中文格式如
2024年5月20日,用:parseDateTime(triggerBody()?['日期列'], 'zh-CN', 'yyyy年MM月dd日')
- Excel日期是
SQL目标列类型不兼容
确保SQL表中对应字段是datetime或datetime2类型,若为date类型,需转换为纯日期格式:formatDateTime(parseDateTime(triggerBody()?['日期列'], 'yyyy/MM/dd'), 'yyyy-MM-dd')时区偏移问题
若SQL需要本地时间,需转换时区:convertTimeZone(parseDateTime(triggerBody()?['日期列']), 'UTC', 'China Standard Time', 'yyyy-MM-dd HH:mm:ss')
排查步骤
- 在Logic Apps中添加Compose动作,直接输出Excel日期字段,确认拿到的是文本还是数值格式。
- 根据Compose的结果调整转换公式,测试通过后再写入SQL。
- 检查SQL表字段类型,确保和转换后的格式匹配。
内容的提问来源于stack exchange,提问作者Syyyyyy
相关产品推荐
相关产品推荐

