#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()
функцию