我是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'
可以使用,但是我不明白如何使用之间的条件来修改它。
可能的解决方案
select count(*),state,DATE(date)
from animal_shelter
where date=> ( now()::date - interval '8 days')
group by state,DATE(date);
这是对的吗?我可以放心,它可以准确地选择过去8天的数据,而今天还不包括在内?
请帮助我实现目标。
答案 0 :(得分:3)
我相信您正在寻找:
WHERE date between now()::date - interval '8 days' AND now()::date - interval '1 day';
答案 1 :(得分:0)
您还可以使用此处提到的current_date
函数:https://www.postgresql.org/docs/current/functions-datetime.html
所以答案就像
where date = current_date - interval 'n day'