Formater une date en Oracle : TO_CHAR et masques de format

Formater une date en Oracle avec TO_CHAR et les masques (DD/MM/YYYY, HH24:MI…), afficher les mois en français, saisir avec TO_DATE. Guide complet.

Illustration : formater une date en Oracle (TO_CHAR)

Formater une date en Oracle se fait avec la fonction TO_CHAR et un masque de format (ex. 'DD/MM/YYYY'), qui décrit comment afficher le jour, le mois, l’année, l’heure… À l’inverse, TO_DATE convertit une chaîne en date. Voici le guide complet des masques de format, avec des exemples prêts à copier.

Publicité

Le principe

SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS') FROM dual;
-- 17/06/2026 14:30:05

Une date Oracle n’a pas de format « interne » : le format n’existe qu’au moment de l’affichage (TO_CHAR) ou de la saisie (TO_DATE). Voir nos tutoriels TO_CHAR et TO_DATE.

Les masques de format les plus utilisés

ÉlémentSignifieExemple
YYYYannée 4 chiffres2026
YYannée 2 chiffres26
MMmois numérique06
MON / MONTHmois abrégé / completJUIN
DDjour du mois17
DAYjour de la semaineMERCREDI
HH24heure (0-23)14
HHheure (1-12)02
MIminutes30
SSsecondes05

Exemples de formats courants

TO_CHAR(SYSDATE, 'DD/MM/YYYY')              -- 17/06/2026
TO_CHAR(SYSDATE, 'YYYY-MM-DD')              -- 2026-06-17 (ISO)
TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI')      -- 17/06/2026 14:30
TO_CHAR(SYSDATE, 'Day DD Month YYYY')       -- Mercredi 17 Juin 2026
TO_CHAR(SYSDATE, 'DD/MM/YYYY', 'NLS_DATE_LANGUAGE=FRENCH')

Afficher les mois/jours en français

MONTH et DAY dépendent de la langue de la session. Forcez le français :

SELECT TO_CHAR(SYSDATE, 'Day DD Month YYYY', 'NLS_DATE_LANGUAGE=FRENCH')
FROM dual;   -- Mercredi 17 Juin 2026

Saisir une date avec TO_DATE

-- toujours préciser le format pour éviter ORA-01843
SELECT * FROM ventes
WHERE date_vente = TO_DATE('17/06/2026', 'DD/MM/YYYY');

Sans format explicite, vous dépendez du NLS_DATE_FORMAT de la session → source classique d’ORA-01843.

Extraire une partie de date

SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;     -- 2026
SELECT TO_CHAR(SYSDATE, 'YYYY') FROM dual;        -- '2026' (texte)
SELECT TO_CHAR(SYSDATE, 'Q') FROM dual;           -- trimestre

Bonnes pratiques

  • Stockez les dates en colonnes DATE/TIMESTAMP, jamais en texte.
  • Toujours un masque explicite dans TO_DATE/TO_CHAR (indépendance vis-à-vis de la session).
  • Pour l’échange de données, préférez le format ISO YYYY-MM-DD.

FAQ

Quelle différence entre HH24 et HH ?

HH24 affiche l’heure sur 24 h (0-23) ; HH sur 12 h (avec AM/PM). Pour la France, utilisez HH24.

Comment changer le format par défaut de la session ?

ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'; — mais ne comptez pas dessus dans le code : précisez toujours le format.

Comment obtenir la date du jour formatée ?

TO_CHAR(SYSDATE, 'DD/MM/YYYY'). Voir notre tutoriel SYSDATE.

Un nouveau tutoriel SQL par semaine

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cours SQL & Oracle — 100% gratuitVoir les cours →