在特定小时之间查询created_at的所有行?

时间:2010-06-30 01:27:01

标签: ruby-on-rails

我需要从一个表中检索created_at时间戳在某个小时内的所有行...比如04:00和05:00。有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

RecordNameHere.find_by_sql("SELECT * FROM `table_name_here` WHERE HOUR(created_at) = HOUR('4:01:00')")

MySQL文档非常棒:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_hour

答案 1 :(得分:1)

对于多个小时范围(例如:4:00到6:00之间的记录)

User.all(:conditions => "HOUR(created_at) BETWEEN ? AND ?", 4, 5)

单小时使用以下语法:

User.all(:conditions => "HOUR(created_at) = ?", 4)

注1 HOUR方法以24小时格式返回小时。相应地提供小时值。