Date de mise à jour + un an dans mysql

97

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 puis-je définir la date + un an?

Merci

Bajlo
la source

Réponses:

174

Vous pouvez utiliser DATE_ADD : (ou ADDDATE avec INTERVAL)

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
Julien Hoarau
la source
17

Ce post 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 DATE_ADDne 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 temps, utilisez now()plutôt que curdate().

Fred McIntyre
la source
4

Pour plusieurs types d'intervalle, 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

Raffael Meier
la source