首页 > 解决方案 > 在 PostgreSQL 中创建灵活的日期范围

问题描述

我想让我的查询更灵活的日期。我正在考虑参考当前日期定义变量。目前我正在编写上一季度、前一季度和一年前一季度的确切日期。

这是 Q1 的查询:

select '2020_Q1' as time_frame, id, status, date, agent, country, sale 
from sales 
where date >= '2020-01-01' and date < '2020-03-31'

我对第 4 季度和第 1 季度(2019 年)和最后的工会做同样的事情。今天是 4 月 27 日,假设距离现在还有 4 个月,现在是 8 月 27 日。现在,我想看看 Q2、Q1 和 Q2(2019 年)。我相信,我需要使用 current_date,但如果您认为有更有效的方法,请告诉我。

标签: postgresqldate

解决方案


您可以使用date_trunc()来获取“当前季度”的开始:

select ...
from sales
where date => date_trunc('quarter', current_date)
  and date < date_trunc('quarter', current_date) + interval '3 months'

推荐阅读