【问题标题】:How to filter timestamp column in Data Flow of Azure Data Factory如何在 Azure 数据工厂的数据流中过滤时间戳列
【发布时间】:2026-01-29 17:25:01
【问题描述】:

我有时间戳列,我在其中编写了以下表达式来过滤该列:

contact_date  >= toTimestamp('2020-01-01') && 
contact_date  <= toTimestamp('2020-12-31')

它不会抱怨语法,但运行后它不会根据指定的日期进行过滤。简单地说,逻辑是行不通的。有什么想法吗?

数据集中的日期列:

【问题讨论】:

    标签: azure-devops azure-data-factory azure-data-factory-2 dataflow


    【解决方案1】:

    请不要使用toTimestamp() 函数。我测试了,你会得到空输出。

    我使用Filter active 过滤数据。请使用toString() 并更改如下表达式:

    toString({contact_date })>= toString('2020-01-01') && toString({contact_date })<= toString('2020-12-31')
    

    参考我的示例,contact_date 并输出:

    【讨论】:

    • 优秀。作品!因此,它需要转换为字符串格式进行比较。不知道。。为什么?这很棘手。
    • 其实toString()也是一个将值转换为日期的函数,我们可以指定日期格式。根据我的经验,我无法比较 ADF 中的时间戳。
    • 我明白了。非常感谢里昂。
    【解决方案2】:

    我认为您需要添加日期的小时、分钟和秒部分,或者根据the docs 指定适当的格式字符串,“如果省略时间戳,则默认模式 yyyy-[M]使用了 M-[d]d hh:mm:ss[.f...]。"

    【讨论】:

    • 日期完全是默认格式。这就是为什么我没有指定格式。请在我的问题上查看添加的屏幕截图。
    • @DineshMadhup 您的日期不是完全是默认格式,因为您只包含了年、月和日,而默认值也需要小时、分钟和秒。将您的过滤日期更改为'2020-01-01 00:00:00' 格式并告诉我您的进展情况。
    【解决方案3】:

    hi 输入和操作 or in () 即

        (contact_date  >= toTimestamp('2020-01-01') &&  contact_date  <= toTimestamp('2020-12-31'))
    
        or
    
         AND(contact_date  >= toTimestamp('2020-01-01') , contact_date  <= toTimestamp('2020-12-31'))
    

    【讨论】: