2012-06-30 5 views
1

Как я могу запросить записи, созданные за определенный час? Нужно ли мне добавить столбец часа в db для каждой записи? Рубин будет возвращать хорошее значение для created_at.hour, но я не могу использовать его в запросе, как, как показано ниже:запрос для created_at hour

results = Record.where("created_at.hour = ?", the_hour) 
+0

У вас будет хорошо работать. Является ли переменная 'the_hour' целым числом? – varatis

+0

the_hour - целое число. Сообщение об ошибке: Mysql2 :: Ошибка: Неизвестный столбец «created_at.hour» в разделе «where» – chief

+0

Проблема заключается в том, что Rails пытается найти столбец с именем «created_at.hour». Rails не понимает, что '.hour' - фактически метод. –

ответ

2

Try:

results = Record.where("hour(created_at) = ?", the_hour) 

Вы должны использовать функцию MySQL hour для извлечения час с отметки времени.

+0

Это работает, спасибо! – chief

0

Для справок в будущем.

Если вы используете SQLite, в котором hour функция для извлечения часа из временной метки недоступна, используйте это решение.

def find_record_by_created_at_hour(certain_hour) 
    Record.all.select {|record| record.created_at.hour == certain_hour } 
end