2011-07-24 55 views
1

您好我有一个列出到期日期等数据库...MySQL的替换功能

5-22-2012 
5-22-2012 
5-22-2012 
5-22-2012 

但有些出来像

5-22-1912 
5-22-1912 
5-22-1912 

是有办法在最后只更换那些年我的专栏?

+0

'DATE'或'(VAR)CHAR'? –

+0

其日期 - 我不得不修复我们的数据库第9名患者出现这些无效的失效日期 – iamwhitebox

+2

至于为什么以及如何将这些值放入表中,请检查插入程序(表单,网页,任何)。可能它不需要处理MySQL,因为默认的MySQL行为是*“# 包含两位数年份值的日期含糊不清,因为该世纪未知.MySQL使用以下规则解释两位数年份值: *在范围00-69 年份值转换为2000至2069年。在70-99范围 * 年值转换为1970-1999。 “*。 –

回答

4

如果字段是DATE类型:

--- Add 100 years when date is before 1940 

UPDATE TableX 
SET expirationDate = expirationDate + INTERVAL 100 YEAR 
WHERE expirationDate < '1940-01-01' 
1
UPDATE table 
SET thiscolumn = CONCAT(month(thiscolumn),'-', day(thiscolumn),'-2012') 
WHERE year(thiscolumn) = '1912';