PostgreSQL — ОШИБКА: столбец «дата» не может быть приведен к типу date

#postgresql #date #casting

#postgresql #Дата #Кастинг

Вопрос:

Я хочу преобразовать определенный столбец в моей базе данных PostgreSQL из character_varying type в тип date. phpPgAdmin выдает мне следующую ошибку:

ОШИБКА: столбец «дата» не может быть приведен к типу date

В инструкции: ИЗМЕНИТЕ ТАБЛИЦУ «public».»tablename» ИЗМЕНИТЕ столбец «date» ВВЕДИТЕ date

Что мне делать? Спасибо

Ответ №1:

Возможно, вам потребуется сначала преобразовать его в текст:

 alter table "foo" alter column "date" type date using ("date"::text::date);
  

Комментарии:

1. Привет и спасибо за ответ. У меня другая проблема. Столбец date используется в одном из моих представлений, поэтому я получаю следующую ошибку: ОШИБКА: не удается изменить тип столбца, используемого представлением или правилом, как я могу это преодолеть?

2. В этом случае вы не можете: вам нужно удалить представление и создать его заново.

3. Если вы хотите сохранить или просмотреть определение представления, оно хранится в pg_views кстати.

4. Как я могу этого добиться, если в моем столбце даты сохранены как dd / mm / yyyy. Я получаю это сообщение об ошибке с вашим решением. PG::DatetimeFieldOverflow: ОШИБКА: значение поля даты / времени выходит за пределы диапазона: «27/11/1992» ПОДСКАЗКА: Возможно, вам нужна другая настройка «datestyle».

5. @acrogenesis: посмотрите на to_date() функцию