我有一个实时数据库,其中有一些2011年日期只输入mm / dd,这些日期默认为2012年。 (例如,2011-03-16输入为03-16并存储为2012-03-16)
因此,db将来会有一些交易日期。我已修复代码以更正输入,但我需要在db中修复不正确的日期。
我可以使用phpMyAdmin手动编辑这些,但这需要几个小时。
理想的解决方案是使用SQL在phpMyAdmin的SQL窗口中更正这些日期。
选择将是:
SELECT created FROM posts WHERE created>'2012-02-01'
然后从每个结果中减去1年并存储它。
换句话说,我需要记下每个created
字段,如果是未来日期减去1年,则将其设为2011日期,然后保存。
答案 0 :(得分:1)
使用DATE_ADD()函数应该非常简单。
update posts set created = DATE_ADD(created, INTERVAL -1 YEAR) where created > '2012-02-01'
来源:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
编辑:oops,更新语法。
答案 1 :(得分:1)
UPDATE posts SET created = DATE_ADD(created, INTERVAL -1 YEAR)
WHERE created > CURDATE()
答案 2 :(得分:0)
UPDATE testdate
SET DATUM = DATE_ADD(datum, INTERVAL -1 YEAR)
WHERE DATUM > NOW();