
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.
Le principe
SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS') FROM dual;
-- 17/06/2026 14:30:05Une 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ément | Signifie | Exemple |
|---|---|---|
YYYY | année 4 chiffres | 2026 |
YY | année 2 chiffres | 26 |
MM | mois numérique | 06 |
MON / MONTH | mois abrégé / complet | JUIN |
DD | jour du mois | 17 |
DAY | jour de la semaine | MERCREDI |
HH24 | heure (0-23) | 14 |
HH | heure (1-12) | 02 |
MI | minutes | 30 |
SS | secondes | 05 |
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 2026Saisir 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; -- trimestreBonnes 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.
