在 Azure 数据工厂管道中按日期查询

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

我想在 复制作业 中为我在 Azure 数据工厂管道中的源使用查询 连同日期函数 - 这是虚拟查询:

SELECT * FROM public.report_campaign_leaflet WHERE day="{today - 1d}"

我找到了一些关于动态内容和其他一些东西的文档,但没有关于如何在 sql 查询中直接使用日期函数的信息。

也许有人给我提示?

谢谢,最好的, 迈克尔

azure-data-factory
3个回答
4
投票

这是您的问题的可能解决方案。

在您的复制活动中,在源端,您在使用查询选项中选择查询,然后在查询框中编写一个表达式

这里是表达

@concat('SELECT * FROM public.report_campaign_leaflet WHERE day=','"',formatDateTime(adddays(utcnow(),-1), 'yyyy-MM-dd'),'"')

formatDateTime 函数只会将 addDays(utcnow(),-1) 的输出格式化为 yyyy-MM-dd 格式

再次,例如,您可以在管道 processDate 中有一个参数,并从触发器定义中的表达式设置该值,然后仅在查询中调用该参数。 (建议)


2
投票

你需要用两个单引号(

"
)替换双引号(
''
):

@concat('SELECT * FROM public.report_campaign_leaflet WHERE day=','''',formatDateTime(adddays(utcnow(),-1), 'yyyy-MM-dd'),'''')

0
投票

我有同样的问题,我已经通过以下方法解决了:

  1. 创建一个 Set 变量活动(假设名称 - X)

@formatDateTime('2022-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss')
  1. 将以下代码写入管道表达式构建器:

    @{concat('select * from Table where Column1=''','A',''' AND TO_CHAR(Date, ''', 'YYYY-MM-DD HH24:MI:SS',''') >= ''', 变量('X'),'''')}

这就可以了!

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