Rails使用postgresql

时间:2016-04-26 14:29:45

标签: ruby-on-rails postgresql

我试图在postgresql中从小时+分钟间隔获取与日期无关的记录。例如,上个月在15:15到18:30之间创建的所有记录。

我找到了这个answer,但它在postgresql中不起作用。

我只试了几个小时

Review.where("extract('hour' from created_at) > 15 AND extract('hour' from created_at) < 18")

SELECT "reviews".* FROM "reviews" WHERE (extract('hour' from created_at) > 15 AND extract('hour' from created_at) < 18)

然而我不知道如何处理会议记录。

1 个答案:

答案 0 :(得分:2)

您可以将created_at投射到time(不包括日期),然后使用BETWEEN

#= select * from times;
          t
---------------------
 2016-01-01 12:00:00
 2016-02-02 13:00:00
 2016-03-03 14:00:00
 2016-04-04 15:00:00
(4 rows)
#= select * from times where t::time between '12:30:00' AND '14:30:00';
          t
---------------------
 2016-02-02 13:00:00
 2016-03-03 14:00:00
(2 rows)

通过Rails,那将是:

Review.where("created_at::time BETWEEN '12:30:00' AND '14:30:00'")