ADF 管道中的动态 SQL 查询

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

我正在尝试在 ADF 管道中动态替换 SQL 查询中的表。我尝试了这些查询来获取它:

select * 
from c 
where timestampToDateTime("@{concat(variables('lastUpdatedColumn'),'*1000')}") < 
"@{formatDateTime(utcnow(),'yyyy-MM-ddTHH:mm:ss.fffffffZ')}"

select * 
from c 
where TimestampToDateTime(variables('lastUpdatedColumn')*1000) < 
"@{formatDateTime(utcnow(),'yyyy-MM-ddTHH:mm:ss.fffffffZ')}"
 

但是两个查询返回相同的输出 - 如下所示:

 "select * from c where TimestampToDateTime(\"c._ts*1000\") < \"2024-07- 
  24T13:03:24.6140044Z\"",

它正在被替换为“c._ts*1000”。但我想删除那些斜杠(,/)。我们怎样才能删除这些呢?预先感谢

sql azure-data-factory azure-cloud-services
1个回答
0
投票
select * from c where timestampToDateTime("@{concat(variables('lastUpdatedColumn'),'*1000')}"") < "@{formatDateTime(utcNow(),'yyyy-MM-ddTHH:mm:ss.fffffffZ')}""

您在上面的查询中提供了双引号(")中的where条件,因此它被视为字符串,这就是获得

back slashes (\)
的原因,如下所述:

enter image description here

要删除反斜杠,请删除双引号,如下所示:

select * from c where timestampToDateTime(@{concat(variables('lastUpdatedColumn'),'*1000')}) < @{formatDateTime(utcNow(),'yyyy-MM-ddTHH:mm:ss.fffffffZ')}

您将得到如下所示的输出:

enter image description here

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