Конвертировать из произвольных дат в единый формат даты - PullRequest
0 голосов
/ 21 октября 2018

Меня попросили перенести данные из одной таблицы в другую.Старые данные включают в себя ряд дат, введенных в виде мешочков любого формата, который пользователь хотел использовать в то время, новый формат требует отдельного поля FROM date и TO date в MM / YYYY.

Так что некоторые датыодна дата, такая как ДД.ММ.ГГГГ или ДД / ММ / ГГ или ДД ГГГГ или ГГГГ или еще раз.Некоторые даты являются обеими датами, например, ДД.ММ.ГГГГ-ДД / ГГГГ или ДД / ММ / ГГ - ДД / ММ / ГГГГ.Так что просто беспорядок.Строк всего пара сотен, но мне не хочется просматривать их вручную, если я могу избежать этого.

Большинство результатов Google относятся к конвертации одного формата в другой, как я могу конвертировать?из множества форматов в один?

1 Ответ

0 голосов
/ 21 октября 2018

Трудно использовать одно выражение для охвата всех комбинаций, поэтому просто сделайте шаблоны по одному:

UPDATE olddata,newdata
SET newdata.date=STR_TO_DATE(olddate.date, "%d.%m.%Y")
WHERE olddata.id=newdata.id
  AND olddata.date REGEXP '[:digit:]{1,2}\.[:digit:]{1,2}.[:digit:]{4}'
  AND newdata.date IS NULL

Сделайте это несколько раз для каждого формата даты и используйте правильное выражение в STR_TO_DATE .Перед обновлением поэкспериментируйте с правильным выражением регуляции.

В конце концов у вас будет достаточно записей для редактирования вручную

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