首页 > 解决方案 > 日期时间字符串必须匹配 ISO 8601 格式 - 在 azure 数据工厂管道 - 随机出错

问题描述

我们有选择语句:

SELECT * 
   FROM [dbo].[ActionCard] 
   WHERE [SinkModifiedOn] >= '@{formatDateTime(pipeline().parameters.windowStart, 'yyyy-MM-dd HH:mm' )}' 
   AND [SinkModifiedOn] <= '@{formatDateTime(pipeline().parameters.windowEnd, 'yyyy-MM-dd HH:mm' )}'

错误:

{
    "errorCode": "InvalidTemplate",
    "message": "In function 'formatDateTime', the value provided for date time string '@pipeline().parameters.windowStart' was not valid. The datetime string must match ISO 8601 format",
    "failureType": "UserError",
    "target": "Copy_ActionCardTest"
}

由于上述错误,数据工厂工作失败。

试过:

SELECT * 
    FROM [dbo].[ActionCard] 
    WHERE [SinkModifiedOn] >= '@{formatDateTime(pipeline().parameters.windowStart, 'YYYY-MM-DD HH:MM:SS.mmm' )}' 
    AND [SinkModifiedOn] <= '@{formatDateTime(pipeline().parameters.windowEnd, 'YYYY-MM-DD HH:MM:SS.mmm' )}'

与上述相同的错误。

SELECT * 
    FROM [dbo].[Contact]  
    WHERE cast(sinkModifiedON as Varchar) >= '@{formatDateTime(pipeline().parameters.windowStart, 'yyyy-MM-dd HH:mm' )}' 
    AND cast(sinkModifiedON as Varchar) <= '@{formatDateTime(pipeline().parameters.windowEnd, '-dd-MM-yyyy-HH-mm-ss-ffff' )}'

也从此查询中获得相同的错误。

标签: sqlazureazure-sql-databasefactory

解决方案


推荐阅读