Fonctions de traitement des dates

SyntaxeGestion des dates avec TO_DATE

La gestion des dates peut poser des problèmes selon les formats paramétrés sur le serveur Oracle (en général par défaut le format est DD-MON-YY). La solution la plus rigoureuse consiste à utiliser la fonction de conversion TO_DATE.

Exemple

TO_DATE('20021130','YYYYMMDD') équivaut à 30-NOV-2002.

ExempleInsertion de date dans Oracle

1
INSERT INTO Project (Num, Name, Begin, End)
2
VALUES (1, 'Walking on the moon', TO_DATE('20150401','YYYYMMDD'), TO_DATE('20160401','YYYYMMDD');

AttentionTO_CHAR(date) et "fm" (format mask)

Les paramètres de type fm pour format mask (fmday, fmDay, fmDAY, fmMonth...) permettent de supprimer les zéros et espaces.

Ils sont à privilégier en général :

  • TO_CHAR(date,'day') retourne 'saturday___' (avec des espaces à la fin)

  • TO_CHAR(date,'fmday') retourne 'saturday'

ExempleBD "Gestion des intervenants" : Question avec date

1
SELECT pknum, TO_CHAR(debut, 'fmday') FROM tcours;
1
PKNUM TO_CHAR(DEBUT,'FMDAY')
2
----- ----------------------
3
    1 monday                 
4
    2 tuesday 

ExempleBD "Gestion des intervenants" : Insert avec date

1
INSERT INTO tCours (pkannee, pknum, titre, type, debut, fkintervenant) 
2
VALUES 	('2003', tCoursSeq.NEXTVAL, 'Relationnel','C', TO_DATE('08-01-2001','DD-MM-YYYY'), 'CROZAT');
3
4
SELECT debut FROM tCours;
1
DEBUT   
2
---------
3
01-JAN-01 
4
02-JAN-01 
5
08-JAN-01