Lorsque 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
Vous pouvez utiliser DATE_ADD : (ou ADDDATE avec INTERVAL
)
UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR)
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 append 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’append 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()
.
Pour plusieurs types d’intervalles, utilisez une construction nestede 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