Elmarzougui
Messages postés20Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention21 février 2012
-
7 févr. 2011 à 17:35
Elmarzougui
Messages postés20Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention21 février 2012
-
24 févr. 2011 à 10:08
Bonjour;
J'ai une table PostgreSQL, je veux mettre à jour un champ de type DATE (YYYY-MM-JJ):
Si les deux premier chiffres de YYYY < "19" alors les remplacer par "19".
Exemple:
1111-11-11 ==> 1911-11-11
1193-05-18 ==> 1993-05-18.
Cette requête permet d'extraire les 2 premiers chiffres YY.
SELECT substring(datenaiselev from 1 for 2)
FROM eduserv.eleve
where SUBSTR(datenaiselev,1,2) < '19';
EricSQL
Messages postés33Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention24 février 2011 22 févr. 2011 à 20:33
Bonsoir,
un truc comme ça :
Select case when DT < to_timestamp('1900-01-01','YYYY-MM-DD')
then to_timestamp('19' || to_char(DT, 'YY-MM-DD'), 'YYYY-MM-DD')
else DT
end
from (
Select to_timestamp('1875-02-20', 'YYYY-MM-DD') as DT
) T
;
Elmarzougui
Messages postés20Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention21 février 2012 22 févr. 2011 à 22:17
Merci EricSQL;
Mais votre requête est une requête de sélection, elle ne modifie pas un champ de type Date.
Merci pour votre attention, je vais la modifier pour avoir la réponse.
Fathi.
EricSQL
Messages postés33Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention24 février 2011 23 févr. 2011 à 19:05
Bonsoir,
c'était pour montrer un exemple. En mise à jour, ça pourrait être :
Update T1
set ma_date = to_timestamp('19' || to_char(ma_date, 'YY-MM-DD'), 'YYYY-MM-DD')
where ma_date < to_timestamp('1900-01-01','YYYY-MM-DD')
;