2014-09-23 1 views
0

Я пытаюсь выполнить следующий запрос в PostgreSQL:Как мне добавить дату в строку, чтобы этот запрос выполнялся?

select * from movies where release_date = current_date; 

Он реагирует со следующей ошибкой:

ERROR: operator does not exist: character varying = date 
LINE 1: select * from movies where release_date = current_date; 
               ^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 

Похоже, что мне нужно бросить дату, возвращенную функцией текущая_дата в строка таким образом, чтобы сравнение работало. Как мне это сделать?

+0

Посмотрите http://stackoverflow.com/questions/17067372/postgres-string-to-date-example-10apr77-to-10-04-1977, в котором будет показано, как отличать строку (ваш выпуск_данных) в дату. Но почему ваш файл release_дата хранится как дата в вашей базе данных? –

+0

Какой тип столбца для 'release_date'? – tadman

+0

Почему вы храните дату в текстовом столбце? И если вы не можете исправить свою схему, в каком формате находится 'release_date'? –

ответ

0

Если предположить, что release_date столбец может быть приведен к дате, вы бы лучше покинуть с:

select * from movies where cast(release_date as date) = current_date; 

CAST функции является частью SQL-92 standard и будет держать ваш запрос переносимым на нескольких платформах.

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