我正在使用一个非常旧的数据库...并且日期存储为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')
)
有想法吗?