如何在 Azure 数据工厂中将 activity 输出格式化为 YYYY-MM-DD hh:mm:ss

How to format an activity output as YYYY-MM-DD hh:mm:ss in Azure data factory

在我的 ADF 管道中,我试图将查找 activity 的输出转换为副本 activity 的源查询中的 YYYY-MM-DD hh:mm:ss 日期格式].我查找 activity 的当前输出是 YYYY-MM-DDThh:mm:ss 格式,我需要删除 'T'.

我已尝试使用动态内容和 formatDateTime 函数,但语法有问题。我还使用 SQL 查询来仅检索相关数据。下面是我的 在动态内容查询中用作输入。我能够让它工作,但我需要更改“03/15/2018 12:00:00”以引用名为 LookupNewWaterMarkActivity 的查找 activity 的输出。

SELECT * 
FROM tableName
WHERE updatedDate > 
'@{formatDateTime('03/15/2018 12:00:00', 'yyyy-MM-dd HH:mm:ss')}'

我已尝试以下操作,但收到以下错误消息: 'cannot fit package::output:any & { count, value } into the function parameter string. (6)'

SELECT * 
FROM tableName
WHERE updatedDate > 
'@{formatDateTime(activity('LookupNewWaterMarkActivity').output, 'yyyy-MM-dd HH:mm:ss')}'

有谁知道如何在 SQL 查询中以任何其他方式格式化我的 activity 的输出?

当运行下面的代码时,我得到下面的错误。

@concat('SELECT * FROM tableName WHERE sys_updated_on_value > ''',formatDateTime(activity('LookupNewWaterMarkActivity').output.value[0].sys_updated_on_value, 'yyyy-MM-dd HH:mm:ss'),'''')

错误代码:FailToResolveParametersInExploratoryController

详情 无法为架构操作解析参数和表达式。

Error Message: { "message": "ErrorCode=InvalidTemplate, ErrorMessage=The expression 'concat('SELECT * FROM tableName WHERE sys_updated_on_value > ''',formatDateTime(activity('LookupNewWaterMarkActivity').output.value[0].sys_updated_on_value, 'yyyy-MM-dd HH:mm:ss'),'''')\n\n' cannot be evaluated because property 'value' doesn't exist, available properties are 'value[0]'.." }

在表达式中使用查找 activity 输出 (activity('Lookup1').output.value[0].columnName) 值和列名称,如下所示,以在以后的活动中引用查找 activity 输出。

查找activity输出:

复制activity:

表达式:

@concat('SELECT * FROM tb2 WHERE date1 > ''',formatDateTime(activity('Lookup1').output.value[0].date1, 'yyyy-MM-dd HH:mm:ss'),'''')

更新:

如果您在查找中启用了 firstRow 属性,请使用以下表达式:

@concat('SELECT * FROM tb2 WHERE date1 > ''',formatDateTime(activity('Lookup1').output.firstRow.date1, 'yyyy-MM-dd HH:mm:ss'),'''')