2016-08-17 7 views
0

Так что у меня ошибка с моей задачей rake, я пытаюсь упростить задачу рейка. Это строка я уже застревать наВремя без ошибки часового пояса в Rails

events = Event.where('eventname ILIKE ? AND time ILIKE ? AND date = ?', "%#{row.product_name}%", "%#{row.delivery_time}%", "%#{row.valid_from}%") 

(если я удалить время и время доставки он работает нормально)

Однако, если я запустить его с этим он застревает на этой ошибки:

ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: operator does not exist: time without time zone ~~* unknown 
LINE 1: ...LIKE '%Portsmouth Guildhall Membership%' AND time ILIKE '%23... 
                  ^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 
: SELECT "events".* FROM "events" WHERE (eventname ILIKE '%Portsmouth Guildhall Membership%' AND time ILIKE '%23:00:00%' AND date = '%2016-12-31%') 

Любые идеи, было бы здорово, как раз для дальнейших разъяснений, время выходит из таблицы событий, как это:

18:00:00 

И тип таблицы времени поле

Сэм

+0

Почему вы хотите использовать ILIKE на поле времени и почему не просто 'time =?' – Salil

ответ

0

Ну, ошибка происходит потому, что вам необходимо явно преобразовать метку в строку перед использованием операции строки на нем. например:

select * from course_statuses where updated_at ILIKE '%13:24:51%' 

Выше один дает мне ошибку, но после того, как типажей updated_at в updated_at :: текст ошибки не придет:

select * from course_statuses where updated_at::text ILIKE '%13:24:51%' 

попробовать на pgadmin3

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