【问题标题】:Is there a way to set all dates?有没有办法设置所有日期?
【发布时间】:2021-02-23 16:16:43
【问题描述】:

我想知道,在 SQL/dbt 中有没有办法将所有日期设置为 >= 另一个日期?

假设我有一个“createdat”日期字段和一个“updatedat”日期字段。我在查询(多个 CTE)以及其他日期中多次使用它。我想确保所有使用的日期都小于上个月的最后一天(即

有没有办法在查询的开头设置它?

【问题讨论】:

  • 请提供样本数据、所需结果和适当的数据库标签。
  • 确定,定义并设置一个变量。

标签: sql date set dbt


【解决方案1】:

这绝对可以做到。您需要将多个列的greatest() 与您想要的任何日期截止日期进行比较。

实际上是:

select *
from {{ ref('some_table') }}
where greatest(created_at,updated_at) < date_trunc('month', current_date)

显然,您可以根据需要向该查询添加任意数量的列。

注意:在某些仓库中,如果greatest 中的任何 列为空,则返回null。在这种情况下,您需要将每个日期与某个日期占位符合并,例如“1970-01-01”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 2018-03-27
    • 2020-06-24
    • 1970-01-01
    • 2020-11-30
    • 2016-10-29
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多