我有一个导轨应用程序,它有一个Checkin
模型。我想查找当天特定时间范围内的所有记录。我如何编写where
以获取在12PM和4:30 PM之间创建的所有记录?两次导轨查询
Q
两次导轨查询
7
A
回答
36
@ x1a4的答案应该对你有好处,但你可以使用范围以更可读和更短的方式做到这一点。
Chekin.where(created_at: Time.parse("12pm")..Time.parse("4:30pm"))
应该产生这样的:
SELECT "checkins".*
FROM "checkins"
WHERE ("checkins"."created_at" BETWEEN '2012-05-28 12:00:00.000000' AND '2012-05-28 16:30:00.000000')
你可以用任何其他方法来创建一个时间变化Time.parse("12pm")
。
8
这看起来像它会工作,假设UTC时区:
Record.where('created_at > ? AND created_at < ?', Date.today + 12.hours, Date.today + 16.5.hours)
或用BETWEEN
:
Record.where('created_at BETWEEN ? AND ?', Date.today + 12.hours, Date.today + 16.5.hours)
BETWEEN
可能还是不包括在范围内的第二值。 Postgres includes it。
0
你可以使用下面的宝石来查找日期之间的记录,
这gem很容易使用和更清晰的[星空] [1]。我使用这个宝石,API更清晰,文档也很好解释。
Post.between_times(
Time.zone.now - 3.hours, # all posts in last 3 hours
Time.zone.now
)
在这里,您可以通过我们的现场也Post.by_month("January", field: :updated_at)
请参阅文档和尝试。
相关问题
- 1. 导轨 - 查询JSON场
- 2. 导轨 - 遍寻不查询
- 3. 多表导轨查询
- 4. 导轨可用性查询
- 5. 导轨的has_many或查询
- 6. 加速导轨查询
- 7. 导轨使查询更好
- 8. 导轨 - 查询组总结
- 9. 导轨联接查询
- 10. 导轨 - 在。凡查询
- 11. 导轨的has_many查询
- 12. 导轨服务两次页面
- 13. 按钮提交导轨形式两次
- 14. 导轨3 - increment_counter增量两次
- 15. MySQL查询使用子查询两次
- 16. 两个查询在一个与活动记录导轨4
- 17. SQL查询返回两次
- 18. Wordpress查询运行两次
- 19. PDO - 查询执行两次?
- 20. 两次用mongodb查询
- 21. MySQL查询运行两次
- 22. 使用查询两次mysql_fetch_array
- 23. 层次查询两个表
- 24. SQL查询发现两次
- 25. 两次select查询python
- 26. 导轨3.2的加载时间慢 - 调试显示导轨加载两次
- 27. 导轨3:数据库查询
- 28. 用导轨处理查询字符串
- 29. 查询postres与导轨和时区
- 30. 导轨 - Mongoid查询在关联领域
您正在使用哪个数据库?获得一天中的小时数的功能将有所不同。除了时间之外,如果您将存储一天中的小时/分钟,这将是最容易的。 –
我正在使用postgresql。我使用Rails提供的标准'created_at'时间戳列 –