我试图在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)
然而我不知道如何处理会议记录。
答案 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'")