postgresql - 如何使用 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 天的数据,不包括今天?
请帮助我实现我的目标。
解决方案
我相信您正在寻找:
WHERE date between now()::date - interval '8 days' AND now()::date - interval '1 day';
推荐阅读
- laravel - Laravel:switch 在一个项目中正常工作,但在另一个项目中崩溃
- chart.js - 如何在 Chart.js 中以不同颜色更改 y 轴标签的颜色
- docker - 我可以避免为蓝绿部署重复我的服务定义吗?
- java - 水平圆形图像以显示用户个人资料图片
- php - 排序顺序的 Magento 产品图像默认值
- java - 为什么不能创建类型参数的实例?
- user-interface - DDD 在一个事务中编辑多个属性
- javascript - 在触发“结束”事件之前,如何使用 fast-csv 处理节点 js 中的最后一行 csv 文件?
- java - 尝试使用 ImageIO.read(new File("")); 加载图像 在 IDE 中工作,而不是在编译 JAR 之后
- entity-framework - 如何获得新创建的孩子的ID?