|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2009 Messages : 12 ![]() |
J'ai un probleme avec une fonction qui converti une date en format SYYDDD en JJ/MM/AA.
quand je prends une date en SYYDDD: cxdate=38001 (1er janvier 1938), en faisant: madatej(cxdate), le resultat donne 01/01/38(ce qui est effectif) mais quand je fais la difference entre la date en cours et cxdate , le resultat est negatif(-27 au lieu de 72). c à d: YEAR(curdate()-madatej(cxdate)) où cxdate=38001. Mais quand cxdate=81145 , en faisant le même exercice que precedemment: YEAR(curdate()-madatej(cxdate)) donne 29(qui est correct). Voici la fonction: create function mabib/madatej(cxdate dec(6, 0)) returns date language SQL deterministic RETURNS NULL ON NULL INPUT begin DECLARE madat DATE; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET madat = NULL; SET madat= case when cxdate = 0 then NULL ELSE DATE(SUBSTR(DIGITS(CXDATE), 2, 2) CONCAT '/' CONCAT SUBSTR(DIGITS(CXDATE), 4, 3)) end; RETURN madat; end Merci de m'aider, peut être qu'il y a un truc que je ne comprends pas. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com