我需要从一个表中检索created_at时间戳在某个小时内的所有行...比如04:00和05:00。有谁知道怎么做?
答案 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小时格式返回小时。相应地提供小时值。