如何在 ADF 中动态使用当前日期时间变量

问题描述 投票:0回答:1

我已将变量设置为字符串数据类型的“当前日期”,并给出以下默认值

在复制数据操作中,我编写了以下后续查询

@concat('
SELECT 
    *
FROM 
   [',variables('schema'),'].[',if(variables('custom_table_list_flag'),item(),item().name),'] 
WHERE 
    UPDATE_DATE >  DATEADD(DAY,-1,CAST(''[',variables('currentdate'),']'' AS DATE))
    AND UPDATE_DATE <= CAST(''[',variables('currentdate'),']'' AS DATE);')

但是 ADF 返回以下错误

“源”端发生故障。 ErrorCode=UserErrorFailedFileOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=文件操作失败,上传文件失败,路径为:'/Parent/UAT'。,Source=mscorlib,''Type=System.Data .SqlClient.SqlException,消息 = 从字符串转换日期和/或时间时转换失败。,源 = .Net SqlClient 数据提供程序,SqlErrorNumber = 241,Class = 16,ErrorCode = -2146232060,State = 1,Errors = [{ Class=16,Number=241,State=1,Message=从字符串转换日期和/或时间时转换失败。,},],'

azure-data-factory
1个回答
0
投票

enter image description here

当尝试将字符串转换为日期或时间值,但该字符串不代表有效的日期或时间时,就会出现上述错误。您可以使用以下表达式:

DATEADD(DAY, -1, CAST(''', variables('currentdate'), ''' AS DATE))'

输出:

enter image description here

CAST(''', variables('currentdate'),''' AS DATE

输出:

enter image description here

代替下面的表达:

DATEADD(DAY,-1,CAST(''[',variables('currentdate'),']'' AS DATE)
CAST(''[',variables('currentdate'),']'' AS DATE);')

currentdate
变量的值为
@formatDateTime(utcnow())
。您将能够成功运行查询,不会出现任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.