web-dev-qa-db-fra.com

Date de mise à jour + un an dans mysql

Quand je veux définir la valeur numérique +1 dans la table mysql, j’utilise par exemple:

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

Comment définir une date + un an?

Merci

88
Bajlo

Vous pouvez utiliser DATE_ADD : (ou ADDDATE avec INTERVAL)

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
155
Julien Hoarau

Ce billet m'a aidé aujourd'hui, mais j'ai dû expérimenter pour faire ce dont j'avais besoin. Voici ce que j'ai trouvé.

Si vous souhaitez ajouter des périodes plus complexes, par exemple 1 an et 15 jours, vous pouvez utiliser

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

J'ai trouvé que l'utilisation de DATE_ADD Ne permet pas d'ajouter plus d'un intervalle. Et il n'y a pas de mot clé d'intervalle YEAR_DAYS, bien qu'il y en ait d'autres qui combinent des périodes. Si vous ajoutez des heures, utilisez now() plutôt que curdate().

16
Fred McIntyre

Pour les types à intervalles multiples, utilisez une construction imbriquée comme dans:

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

Pour mettre à jour une date donnée dans la colonne date à 1 an + 1 jour

3
Raffael Meier