使用phpMyAdmin中的sql更改日期字段,其中包含不正确的年份

时间:2012-02-01 13:40:29

标签: php mysql phpmyadmin

我有一个实时数据库,其中有一些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日期,然后保存。

3 个答案:

答案 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();