【发布时间】:2017-08-16 21:32:40
【问题描述】:
我在数据库中有一个包含三个字段的表:id、value 和 timestamp。
给定两个日期,我知道如何在 postgres 中编写一个查询,使用 timestamp 字段,将查找某个范围内的所有记录。麻烦的是,我还想找到范围之前的最近的单个记录,以及范围之后的最近的单个记录。
所以,如果我有这张桌子:
id | value | timestamp
---+-------+---------------------
1 | 18| Jan, 1 2017, 09:00:000
2 | 16| Jan, 1 2017, 09:05:000
3 | 14| Jan, 1 2017, 09:21:150
4 | 12| Jan, 1 2017, 10:01:150
5 | 13| Jan, 1 2017, 10:07:000
6 | 09| Jan, 1 2017, 10:23:000
我想编写一个包含时间的查询:
Jan, 1 2017, 9:10:000 直到 Jan, 1 2017, 10:05:000
并将返回:
id | value | timestamp
---+-------+---------------------
2 | 16| Jan, 1 2017, 09:05:000
3 | 14| Jan, 1 2017, 09:21:150
4 | 12| Jan, 1 2017, 10:01:150
5 | 13| Jan, 1 2017, 10:07:000
id 2,是最接近范围底部的记录,但仍小于范围底部。 id 5,是最接近范围顶部但仍大于(或等于)范围顶部的记录。
【问题讨论】:
标签: postgresql datetime range