Postgres选择当前小时数据

时间:2016-10-15 19:05:36

标签: postgresql

我有一个带有表'token'的postgres数据库,它有'token_id'及其生成的时间

token_id | generated_time
196618   | 2016-10-15 01:02:48.963
196619   | 2016-10-15 01:02:50.569
196620   | 2016-10-15 01:03:12.931
196621   | 2016-10-15 02:03:17.037
196622   | 2016-10-15 02:22:55.782
196623   | 2016-10-15 02:24:57.477
196624   | 2016-10-15 03:23:00

我想要做的是从表中选择当前小时数据,例如当前日期时间 2016-10-15 01:30:15 然后我想选择 2016-10-15 01:00:00和2016-10-15 02:00:00

感谢您的任何建议。

2 个答案:

答案 0 :(得分:4)

我想说date_trunc('hour')可能会有帮助,例如

select token_id, generated_time
from token
where generated_time between date_trunc('hour', current_timestamp) and date_trunc('hour', current_timestamp + interval '1 hour')

答案 1 :(得分:1)

使用date_trunc()

where generated_time >= date_trunc('hour', current_timestamp)

实际上假设你的桌子没有未来的时间。更具体的答案是:

where generated_time >= date_trunc('hour', current_timestamp) and
      generated_time < date_trunc('hour', current_timestamp) + interval '1 hour'