postgresql 从表中获取最近三个月记录

qij5mzcb  于 2022-11-29  发布在  PostgreSQL
关注(0)|答案(4)|浏览(761)

如何从表中获取最近3个月的记录。

SELECT * 
from table 
where month > CURRENT_DATE-120 
  and month < CURRENT_DATE 
order by month;

我已经使用了上面的查询是正确的吗?我应该使用这个从表中获得过去3个月的记录。

jljoyd4f

jljoyd4f1#

可以使用内置的INTERVAL指令
检查其工作原理:

SELECT CURRENT_DATE - INTERVAL '3 months'

您可以将SQL重写为:

SELECT * from table where date >  CURRENT_DATE - INTERVAL '3 months'

(not但这应该会给予您了解如何使用INTERVAL指令)

czfnxgou

czfnxgou2#

试试看:

SELECT *
FROM table
WHERE month BETWEEN EXTRACT(MONTH FROM NOW() - INTERVAL '3 months')
AND EXTRACT(MONTH FROM NOW())
ORDER BY month
;
gab6jxml

gab6jxml3#

select date::date from generate_series((当前日期-间隔'1个月')::date,(当前日期-间隔'1天')::date,'1天'::间隔)date WHERE日期〉= date_trunc('月',当前日期-间隔'3'个月)and date〈date_trunc('月',当前日期)
这将给予过去三个月的日期列表,不包括当前月份的日期。例如,当前月份是11月。此列表将使用8月、9月和10月的所有日期。

vawmfj5a

vawmfj5a4#

这将过滤过去3个日历月

SELECT * from table where date >=  to_char(CURRENT_DATE - INTERVAL '3 months', 'YYYY-MM-01')::date

相关问题