Comme il a été dit, tu fait un to_date d'une date ce qui est très mauvais... to_date attends une chaine. Et comme tu lui passe un date, oracle va d'abord faire une conversion implicite en chaine selon le paramètre de session NLS_DATE_FORMAT. Ensuite pour l'affichage, oracle re-traduit en chaine selon toujours le même paramètre. Donc il faut bien comprendre que quand tu fais:
SELECT TO_DATE(SYSDATE, 'DD/MM/YYYY') FROM DUAL
oracle converti implicitement en:
SELECT TO_CHAR(TO_DATE(to_char(SYSDATE,NLS_DATE_FORMAT), 'DD/MM/YYYY'),NLS_DATE_FORMAT) FROM DUAL
avoue que c'est plus simple de faire directement :
SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY') FROM DUAL
Partager