我有一个SQL表,其日期格式为12/9/66
(英国日期格式,dd / mm / yy)。当我使用时:
UPDATE players SET dateOfBirth = STR_TO_DATE('12/9/66','%d/%m/%y')
它将日期设置为2066-09-12
。
很明显,我希望它是1966-09-12
。如何获取正确的日期?
答案 0 :(得分:2)
您可以检查STR_TO_DATE
是否导致将来的日期(why),然后减去100年:
UPDATE players
SET dateOfBirth = STR_TO_DATE('12/9/66','%d/%m/%y') - INTERVAL (
CASE WHEN STR_TO_DATE('12/9/66','%d/%m/%y') <= CURRENT_DATE THEN 0 ELSE 100 END
) YEAR