sql - 有没有办法设置所有日期?
问题描述
我想知道,在 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
推荐阅读
- android - 改造首次服务响应缓慢
- javascript - 使用optimize.google中的JS按类更改图像以进行A / B测试
- azure - 公开 Graylog Azure VM
- python - 如何使用 tkinter 编辑字典列表
- php - 从 PHP 执行 Puppeteer 时出错
- http - Elasticsearch 用于 POST 的 uri 的 http 方法不正确
- reactjs - 如何使用 React Native 过渡器?
- python - 使用 Django Rest Framework 接收“详细信息”:“未找到”以获取详细信息视图
- vue.js - 将数据传递给指令?
- cassandra - Cassandra nodetool 状态挂起