如果未在VARCHAR日期中设置年份,如何将年份设置为2020年

时间:2020-02-04 10:27:51

标签: mysql sql date date-format str-to-date

我正在使用一个非常旧的数据库...并且日期存储为VARCHAR,我需要将日期保留为VARCHAR:S,但是将其扩展为year = 2020,hour = 0,minute = 0和second如果未设置该字段,则为= 0。

日期具有各种奇怪的格式,例如'01 / 08','01/08/20','01/08/2020'等。我处理所有格式都很好,除了未设置year时,我已经尝试过使用该查询,但是它将year设置为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')
    )

有想法吗?

0 个答案:

没有答案