【发布时间】:2023-02-03 01:11:36
【问题描述】:
我需要创建一个条件,根据当前季度筛选未来 8 个季度的数据中的日期。问题是这需要滚动。例如,在我写这篇文章时,时间是 2/2/2023。数据条件需要是这样的,它需要当前季度(即第一季度)的数据,然后是当前季度+1、+2 等的数据。问题是当我进入新的一年时,就像 PostgreSQL 一样不允许你做datefield + interval '1 quarter'。因此,当我需要一种自动提取 2023 年第一季度数据的方法时,我不能简单地使用间隔。当我进入第四季度时,这也是一个问题。我不能做datefield + interval '1 quarter',因为那给出了不存在的 Q5。
有什么技巧可以解决这个问题吗?我目前的想法是,我需要创建条件逻辑,如果当前季度是第 4 季度,则过滤当年第 1 季度数据 + 1 中的数据,但我想知道是否有更有效的方法来执行此操作。
我当前(和不完整)的解决方案如下:
select *
from mytable
where extract(quarter from datefield) = extract(quarter from current_date + interval '1 quarter')
and datefield >= concat(extract(year from current_date), '-01-01')::date
and datefield <= current_date + interval '2 years'
谢谢!
【问题讨论】:
标签: postgresql