如何根据时间在Postgresql中进行查询

时间:2015-01-06 16:48:24

标签: sql postgresql timestamp

我想在postgres中进行一个查询,该查询应该带来前一小时更新的记录数

For example 9AM-10AM records updated is 100 means I should get 100. 
            10AM-11AM records update is 200 means I should get 200(not 300).

更新列2011-02-03 09:00:00中的示例时间戳 我试过这样的

select count(*) from customer where updated>=now()-1 and updated<now()

我知道现在() - 1将在昨天。我不知道如何从现在开始减去一个小时

1 个答案:

答案 0 :(得分:0)

这应该可以使用date/time related functions and operations provided by Postgres

来实现
where updated between 
  (date_trunc('hour',current_timestamp) - interval '1 hour') 
  and 
  (date_trunc('hour',current_timestamp))

说明:

date_trunc('hour',current_timestamp)

将当前时间设置为分钟,秒和毫秒设置为0和

 - interval '1 hour'

从给定的时间戳减去一小时。

将这些组合起来创建您想要的范围(between