2010-10-05 27 views
66

当我想在MySQL表设定的数值+1,我使用例如: -更新日期+一年MySQL的

UPDATE table SET number=number+1 WHEN ... 

如何设置日期+学制一年?

感谢

+0

http://dev.mysql.com/ DOC/refman/5.1/EN /日期和时间functions.html#function_adddate – 2010-10-05 15:14:37

回答

120

你可以使用DATE_ADD:(或ADDDATEINTERVAL

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
12

这篇文章今天帮了我,但我不得不尝试做什么,我需要。这是我发现的。

如果你想添加更多复杂的时间段,例如1年期和15天,你可以使用

UPDATE tablename SET datefieldname = curdate() + INTERVAL 15 DAY + INTERVAL 1 YEAR; 

我发现,使用DATE_ADD不允许添加多个间隔。并且没有YEAR_DAYS间隔关键字,但也有其他组合时间段的关键字。如果您要添加时间,请使用now()而不是curdate()

2

对于多个间隔类型使用嵌套结构如:

UPDATE table SET date = DATE_ADD(DATE_ADD(date, INTERVAL 1 YEAR), INTERVAL 1 DAY) 

对于列中的更新给定日期date至1年+1天