我想知道,在 SQL/dbt 中有没有办法将所有日期设置为 >= 另一个日期?
假设我有一个“createdat”日期字段和一个“updatedat”日期字段。我在查询(多个 CTE)以及其他日期中多次使用它。我想确保所有使用的日期都小于上个月的最后一天(即 <= last_day(current_date()-30, month))。
有没有办法在查询的开头设置它?
这绝对可以做到。您需要将greatest()
多个列的 与您想要的任何日期截止日期进行比较。
实际上,它将是:
select *
from {{ ref('some_table') }}
where greatest(created_at,updated_at) < date_trunc('month', current_date)
您显然可以根据需要向该查询添加任意数量的列。
注意:在某些仓库中,如果其中的任何列为空,则greatest
返回。在这种情况下,您需要将每个日期与某个日期占位符合并,例如“1970-01-01”。null