Изменить столбец varchar на datetime? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть столбец в mysql таблице под названием «dtm»
Данные в нем такие как «20200525 / 0704Z»
Дата и время указаны в формате Zulu.
В настоящее время тип столбца - varchar 255 .

Как мне преобразовать это в более полезный тип столбца, такой как datetime?

Я получаю «слишком большая ошибка точности max составляет 6» при попытке просто изменить тип столбца.
Спасибо

Ответы [ 2 ]

6 голосов
/ 29 мая 2020

Лучше создать второй столбец с типом данных datetime. Затем используйте php, чтобы преобразовать старый формат dtm и обновить его в новый столбец datetime, прежде чем окончательно удалить старый столбец dtm.

1 голос
/ 29 мая 2020

Дополнение к ответу @ Calvin-Tan, поскольку оно плохо вписывается в раздел комментариев.

Вы можете заполнить новый столбец из старого прямо в MySQL, используя запрос типа:

UPDATE table SET new_date = CONCAT(
  SUBSTR(old_date, 1, 4),
  '-',
  SUBSTR(old_date, 5, 2),
  '-',
  SUBSTR(old_date, 7, 2),
  ' ',
  SUBSTR(old_date, 10, 2),
  ':',
  SUBSTR(old_date, 12, 2),
  ':00'
);

, который переформатирует строку как 2020-05-25 07:04:00.

Также имейте в виду, что MySQL типы даты / времени не имеют понятия часового пояса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...