Mysql - изменить подробный формат даты на Ymd - PullRequest
0 голосов
/ 08 марта 2019

Я работаю над проектом, который, очевидно, был построен полным новичком.Дата сохраняется в столбце varchar в формате «20 января 2010 г.».Мне нужно преобразовать этот столбец в DATE или DATETIME, но когда я делаю это (в резервной копии), значения становятся 0000-00-00.

Я пытался преобразовать значения в правильный формат перед изменениемтип столбца, использующий функции str_to_date() и DATE(), но оба сообщают о неверном формате строки.Можно ли преобразовать эти данные в действительный формат даты?

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Используйте STR_TO_DATE и обновите этот столбец, указав правильное значение даты, используя текущую текстовую дату.

UPDATE yourTable
SET new_date = STR_TO_DATE(old_date, '%b %e, %Y');

Я предполагаю, что либо вы используете неправильную маску формата, и / или у некоторых ваших текстовых дат есть проблемы. Вот краткая демонстрация, показывающая, что вышеуказанная логика работает.

Демо

0 голосов
/ 08 марта 2019

Используйте это вместо.

UPDATE table_name
SET DATES =  DATE_FORMAT(DATES, '%Y-%m-%d');

Я предлагаю использовать другой столбец для хранения обновленного значения даты. I.E: update tb_date set new_date_column = DATE_FORMAT(date_column, '%y-%m-%d');

Проверьте это, надеюсь, это сработает для вас.

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