2012-04-17 3 views
2

Что я могу сделать для запроса записей по времени в поле времени даты? И под «временем» я подразумеваю время без даты. Например, я хочу, чтобы каждая запись была создана в полночь любого дня.Как запросить время в рельсах?

ответ

1
Product.where("created_at like ?", "%00:00:00%") 
+0

намного проще и работает – Andy

+0

это работает локально, но не на геройку, любая идея почему? Он сказал: «ActiveRecord :: StatementInvalid: PG :: Ошибка: ERROR: оператор не существует: временная метка без часового пояса ~~ unknown» и «СОВЕТ: оператор не соответствует указанному имени и типам аргументов. Возможно, вам потребуется добавить явный тип приведения "(стрелка указывает на 'l' in 'like') – Andy

+0

Необходимое решение полностью зависит от БД. Я не знаю вашу БД. Если это PostgreSQL, попробуйте 'created_at :: text'. – jdoe

4

Больше как это:

Product.where("time(created_at) = time(?)", Time.new(2008,6,21, 24,0,0, '-00:00')) 

EDIT

Я добавил часовой пояс из параметров для Time.new, что пары должны соответствовать часовому поясу у вас есть свои поля времени даты в вашей базе данных.

+0

@ Энди так ответил на ваш вопрос? –

+0

спасибо за ответ, но это не сработало для меня, я использовал другое решение. – Andy

Смежные вопросы