You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate中SQL日期同步SharePoint日历的格式与报错问题

Power Automate SQL转SharePoint日历日期问题解决办法

一、解决Compose动作Null报错问题

原表达式未处理dato字段为空的情况,导致formatDateTime函数接收Null参数报错。修改表达式为:

if(empty(item()?['dato']), '', formatDateTime(item()?['dato'], 'dd-MM-yyyy'))

逻辑:先检查dato字段是否为空,为空则返回空字符串;非空时正常格式化日期。

二、解决日期日月颠倒及部分日期报错问题

问题根源

SQL返回的dd-MM-yyyy格式日期字符串,Power Automate默认按英文区域的MM-dd-yyyy规则解析:

  • 日≤12时,会被误判为月份,导致日月颠倒(如09-01-2024被解析为01-09-2024);
  • 日>12时,无法按MM-dd规则解析,直接报错(如17-01-2024)。

解决方式

方式1:SQL查询层直接格式化日期

在SQL的Get Rows (V2)步骤中,自定义查询将日期转为ISO标准格式(yyyy-MM-dd),例如:

SELECT *, CONVERT(VARCHAR, dato, 23) AS formatted_dato FROM 你的表名

后续直接用item()?['formatted_dato']映射到SharePoint日期字段,Power Automate能直接识别正确日期,无需额外转换。

方式2:Power Automate表达式转换

如果无法修改SQL查询,用表达式拆分原日期字符串,重组为ISO格式后再转换:

if(empty(item()?['dato']), null, formatDateTime(concat(split(item()?['dato'], '-')[2], '-', split(item()?['dato'], '-')[1], '-', split(item()?['dato'], '-')[0]), 'yyyy-MM-dd'))

将该表达式直接映射到SharePoint日历的日期字段(SharePoint兼容ISO格式的日期字符串),即可避免解析错误,保持日期正确性。

补充:必填字段处理

如果SharePoint日期字段为必填,需提前过滤SQL中dato为空的行:在Get Rows (V2)步骤的筛选行中添加条件dato is not null,避免空值流入后续步骤。

内容的提问来源于stack exchange,提问作者MathiasMester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:34:57