Bonjour ,
je suis dans une requette sql et j'aime comparer une date avec la date de fin d'anné (31-dec-XXXX) . qlq1 de vous connait comment je peux obtenir la date de fin d'anné c.a.d si on ai en 2011 je doit avoir 31-dec-2011
MERCI
Bonjour ,
je suis dans une requette sql et j'aime comparer une date avec la date de fin d'anné (31-dec-XXXX) . qlq1 de vous connait comment je peux obtenir la date de fin d'anné c.a.d si on ai en 2011 je doit avoir 31-dec-2011
MERCI
pourquoi pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part '31/12/' || TRUNC(ladate,'YYYY')
Ca va lui donner 31/12/01/01/08 et non pas 31/12/08
C'est faisable avec par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part TO_DATE(TO_CHAR(sysdate,'YYYY')||'1231','YYYYMMDD')
Et pour obtenir la date de fin d'anné précédente:
et cette anné
Code : Sélectionner tout - Visualiser dans une fenêtre à part trunc (sysdate, 'YEAR') - 1
Je crois (pas sûr) c'est plus performant que to_char et to_date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part add_months (trunc (sysdate, 'YEAR') - 1, 12)
DAB
je confirme !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SQL> declare d date; 2 begin 3 for i in 1..1000000 loop 4 d:=add_months (trunc (date '2000-01-01'+i, 'YEAR') - 1, 12); 5 end loop; 6 end; 7 / PL/SQL procedure successfully completed. Elapsed: 00:00:02.28
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SQL> declare d date; 2 begin 3 for i in 1..1000000 loop 4 d:=TO_DATE(TO_CHAR(date '2000-01-01'+i,'YYYY')||'1231','YYYYMMDD'); 5 end loop; 6 end; 7 / PL/SQL procedure successfully completed. Elapsed: 00:00:07.36
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager