postgresql 获取最近6个月的记录,但返回7个月的记录?

8wigbo56  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(133)

我在查表上最近6个月的行。代码如下:

select "datetime" 
from "someTable" 
where "datetime" >= '2021-06-09 16:00:00'::timestamp - interval '6 months'
and   "datetime" <= '2021-06-09 16:00:00'::timestamp
group by "datetime"

结果:

2020-12-09 16:00:00
...
2021-06-09 16:00:00

预期效果:

2021-01-09 16:00:00
...
2021-06-09 16:00:00

谁能解释一下为什么使用- interval '6 months'返回7个月的记录?我试着不使用interval,而是使用between,结果是一样的。我也不想使用5 months而不是6 months来获得预期的结果。

i7uaboj4

i7uaboj41#

使用>而不是>=排除下限:

where datetime > timestamp '2021-06-09 16:00:00' - interval '6 months'

然后你应该得到所需的6行。

相关问题