Как установить год на 2020, если на дату VARCHAR не установлен год - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю с довольно старой базой данных ... И даты хранятся как VARCHAR, и мне нужно сохранить даты как VARCHAR: S, но расширяя их с помощью года = 2020, часа = 0, минуты = 0 и секунды = 0, если эти поля не установлены.

Даты имеют все виды странных форматов, таких как «01/08», «01/08/20», «01/08/2020» и так далее. Я имею дело со всеми форматами, за исключением случаев, когда год не установлен, я пытался с этим запросом, но он установил год на 0 и вызывает ошибку с функцией STR_TO_DATE ()

UPDATE people
SET date = 
    IF (
        YEAR(STR_TO_DATE(date, '%d/%m/%Y %H:%i:%s')) > 0 ,
        DATE_FORMAT(STR_TO_DATE(date, '%d/%m/%Y %H:%i:%s'), '%d/%m/%Y %H:%i:%s') ,
        DATE_FORMAT(STR_TO_DATE(date, '%d/%m/%Y %H:%i:%s') + INTERVAL 2020 YEAR, '%d/%m/%Y %H:%i:%s')
    )

Любая идея чуваки?

...