我想选择在凌晨2点到凌晨3点之间创建的一组记录,无论其创建日期如何。有没有办法实现这个目标?
数据库:PostgreSQL
答案 0 :(得分:2)
使用PostgreSQL:
Model.where("created_at::time BETWEEN '14:00:00' AND '15:00:00'")
P.S。在处理时间查询之前,请确保您了解Rails默认时区(UTC)以及与用户相关的问题'时区差异。
答案 1 :(得分:2)
您可以使用PostgreSQL
中的extract
功能从date_time中提取时间
SELECT * FROM users WHERE extract(hour from created_at) BETWEEN 2 and 3;
是否有可能在23:00:00至01:00:00之间进行检查。
同样不适用于time BETWEEN 23 and 1
,但您可以通过以下方式实现:
SELECT * FROM users WHERE extract(hour from created_at) >= 23 and extract(hour from created_at) < 1;