【问题标题】:Azure: Compare dates in Data factoryAzure:比较数据工厂中的日期
【发布时间】:2018-11-21 11:01:25
【问题描述】:

数据工厂没有内置的日期差异功能。我想在条件活动中比较 lastModified 日期和 utcnow。我怎样才能实现它?

@greaterOrEquals(activity('Get Metadata1').output.lastModified, '2015-03-15T13:27:36Z')

【问题讨论】:

    标签: azure azure-data-factory-2


    【解决方案1】:

    您可以使用ticks 函数将其转换为整数。 Logic Apps function reference for Ticks

    ADF UI 可能会显示有关它不是可识别函数的警告,但 ADF 实际上正在使用逻辑应用表达式,因此如果您调试或触发管道,它将成功。

    【讨论】:

    • 您链接的刻度函数适用于 Azure 逻辑应用,而不是 Azure 数据工厂。我刚试了一下,数据工厂中的 ticks 不是一个公认的功能。
    • 其实是一样的。 ADF 正在使用逻辑应用表达式。虽然 UI 可能会显示警告,但如果您调试或触发管道,运行时将成功。
    【解决方案2】:

    我通过将日期的年份和月份部分转换为整数并比较它们来解决它。

    【讨论】:

      【解决方案3】:

      我今天遇到了这个问题,我需要检查utcNow() 时间是否大于凌晨 2 点(在数据工厂的 if 块内)。

      根据上述建议,我使用了ticks() 函数。我确信它不是最优雅的,但不确定如何很好地转换日期时间的小时部分,因为似乎不支持 hour()

      @if(greaterOrEquals(div(sub(ticks(utcNow()),ticks(startOfDay(utcNow()))),36000000000),2))True,False)

      使用 36,000,000,000 除法将 100ns 滴答转换为 utcNow()startOfday(utcNow()) 之间的小时数

      【讨论】:

        【解决方案4】:

        我们可以得到两个日期之间的日期差异计数。 @string(div(div(div(div(sub(ticks(variables('presentdate'))),ticks(variables('pastdate'))),10000000),60),60),24))

        【讨论】:

          猜你喜欢
          • 2021-03-15
          • 1970-01-01
          • 1970-01-01
          • 2019-07-31
          • 2020-03-11
          • 2020-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多