首页 > 解决方案 > 如何使用 postgresql 检索过去 n 天的结果

问题描述

我是postgres的新手

我正在尝试做的事情:每次我在给定日期运行查询时 获取前n几天的结果,而无需手动更新开始日期和结束日期。

示例查询:
如果我今天(2019 年 6 月 23 日)运行查询,
我的查询检索过去 8 天的结果看起来像

select count(*),state,DATE(date)
from animal_shelter
where date=>'2019-06-15' and date <='2019-06-22'
group by state,DATE(date);

但这需要手动干预,我每次都更新两个日期。

我发现有

now()::date - interval '8 days'

可以使用,但我不明白如何修改使用它与 between 条件。

可能的解决方案

select count(*),state,DATE(date)
from animal_shelter
where date=> ( now()::date - interval '8 days') 
group by state,DATE(date);

这是对的吗,我可以保证它准确地选择了过去 8 天的数据,不包括今天?

请帮助我实现我的目标。

标签: postgresql

解决方案


我相信您正在寻找:

WHERE date between now()::date - interval '8 days' AND now()::date - interval '1 day';

推荐阅读