Запросить все строки с созданным_ между определенными часами? - PullRequest
2 голосов
/ 30 июня 2010

Мне нужно извлечь все строки из таблицы, где временная метка create_at находится в течение определенного часа ... скажем, 04:00 и 05:00.Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

1 голос
/ 30 июня 2010

Для диапазона нескольких часов (например, записи между 4:00 до 6:00)

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

Для одного часа используйте следующий синтаксис:

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

Примечание 1 Метод HOUR возвращает час в 24-часовом формате. Укажите значение часа соответственно.

1 голос
/ 30 июня 2010
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...