2010-10-05 8 views
66

Wenn ich numerischen Wert +1 in MySQL-Tabelle will einstellen, verwende ich z.B .:Update-Datum + 1 Jahr in mysql

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

Wie kann ich Datum + 1 Jahr?

Dank

+0

http://dev.mysql.com/ Aktualisierung doc/refman/5.1/de/datum-und-zeit-funktionen.html # function_adddate –

Antwort

120

Sie DATE_ADD verwenden: (oder ADDDATE mit INTERVAL)

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

Dieser Beitrag half mir heute, aber ich hatte zu experimentieren, um zu tun, was ich brauchte. Hier ist was ich gefunden habe.

Sollten Sie komplexere Zeiträume hinzuzufügen, zum Beispiel 1 Jahr und 15 Tage, können Sie

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

ich, dass DATE_ADD nicht verwenden verwenden Sie nicht für das Hinzufügen von mehr als einem Intervall zu ermöglichen. Und es gibt kein Schlüsselwort YEAR_DAYS interval, obwohl es andere gibt, die Zeiträume kombinieren. Wenn Sie Zeiten hinzufügen, verwenden Sie now() statt curdate().

2

Für mehrere Intervalltypen verwenden eine verschachtelte Konstruktion wie in:

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

für ein bestimmtes Datum in der Spalte date-1 Jahr + 1 Tag