Задать вопрос
@knowledge

Как поменять тип поля с integer в datetime с автоматической конвертацией значений?

Подскажите, есть база данных, тип поля date_of_birth указан как integer и все даты в нем в виде числа unixtimestamp

Мне нужно поменять тип поля на datetime
Если делаешь
ALTER TABLE tablename MODIFY date_of_birth DATETIME;
выдает ошибку invalid value

Есть какое-нибудь решение по автоматической конвертации даты из integer в вид datetime в таблице?
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
mysql не умеет конвертировать значения при смене типа на несовместимый.
Поэтому необходимо добавить новое поле, обновить всю таблицу, удалить старое поле и переименовать новое в старое.

Для конвертации из числового unixtime в datetime есть подходящая функция FROM_UNIXTIME, поэтому обновление таблицы будет таким:
update tablename set new_datefield = FROM_UNIXTIME(old_int_unixtime);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Arik
Как вариант:
1. Добавить рядом новое поле
2. UPDATE'ом перенести значение в нужном формате
3. Снести старое поле
4. Переименовать новое поле к старому
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы