OVH Cloud OVH Cloud

Incrémentation d'une Date ?

4 réponses
Avatar
Otto
Bonjour à tous,

J'aimerais updater tous les champs DATE_ENR de 1 année à
condition que DATE_ENR soit plus vieux que le jour même et
que le status YEAR_REPEAT soit à 1.

La sélection fonctionne bien, mais j'ai un petit problème
pour incrémenter la date de une année.

UPDATE calendrier SET DATE_ENR= >>DATE_ENR+365<< WHERE
DATE_ENR < CURDATE() AND YEAR_REPEAT = 1

La date est au format "2005-01-13 10:10".

Merci d'avance pour tous renseignements.

Otto

4 réponses

Avatar
Patrick Mevzek
Le Fri, 14 Jan 2005 15:06:31 +0100, Otto a écrit :
J'aimerais updater tous les champs DATE_ENR de 1 année à condition que
DATE_ENR soit plus vieux que le jour même et que le status YEAR_REPEAT
soit à 1.



UPDATE calendrier SET DATE_ENRÚTE_ENR+'1 year'::interval WHERE ...

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
Otto
In article ,
Patrick Mevzek wrote:
UPDATE calendrier SET DATE_ENRÚTE_ENR+'1 year'::interval WHERE ...



Merci pour ton aide, mais cela ne fontionne pas.
Le type de champs est "DATE_ENR datetime Oui NULL"

Je vais essayer de comprendre le fonctionnement de interval.

Meilleures salutations

Otto
Avatar
Otto
In article ,
Patrick Mevzek wrote:
UPDATE calendrier SET DATE_ENRÚTE_ENR+'1 year'::interval WHERE ...



Voilà après lecture de quelques exemples la solution que j'ai trouvé

UPDATE calendrier SET DATE_ENR = (DATE_ENR + INTERVAL 1 YEAR) WHERE
DATE_ENR < CURDATE() AND YEAR_REPEAT = 1

Encore merci pour ton aide et bon weekend

Otto
Avatar
Patrick Mevzek
Le Fri, 14 Jan 2005 18:54:28 +0100, Otto a écrit :

In article ,
Patrick Mevzek wrote:
UPDATE calendrier SET DATE_ENRÚTE_ENR+'1 year'::interval WHERE ...



Merci pour ton aide, mais cela ne fontionne pas. Le type de champs est
"DATE_ENR datetime Oui NULL"



Oui pardon, j'ai donné la syntaxe PostgreSQL, c'est un raccourci (le cast
avec ::) tellement facile et rapide, qu'à force on oublie :-)

La syntaxe standard voudrait donc plutôt:
DATE_ENRÚTE_ENR+CAST('1 year' AS interval)

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>