web-dev-qa-db-fra.com

oracle convertir DD-MON-YY en DD / MM / YYYY

J'essaie de convertir le format d'une colonne varchar2 de 'DD-MON-YY' à 'DD/MM/YYYY'.

Dans l'exemple: de '1-JAN-16' à '1/01/2016'

Au cas où vous pourriez demander ou cela pourrait aider:

  • La partie "MON" est en anglais, mais mes paramètres NLS actuels sont en turc.
  • Toutes les années sont postérieures à 2000.

Comment puis-je faire ceci? Merci d'avance..

5
kzmlbyrk

Si vous ne fournissez pas le NLS_DATE_LANGUAGE, le paramètre de votre propre session sera utilisé.

Vous pouvez remplacer cela comme ceci:

select TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY', 'NLS_DATE_LANGUAGE = English'),
           'DD/MM/YYYY') from dual;

Cela n'affectera que cette requête, rien d'autre. Si vous devez travailler avec de nombreuses dates comme celle-ci,

ALTER SESSION SET NLS_DATE_LANGUAGE='ENGLISH'

- alors vous pouvez le modifier plus tard, ou il sera réinitialisé en turc à la fin de cette session et vous commencerez une autre session.

Si vous souhaitez que cette modification soit rendue (presque) permanente, placez-la dans vos paramètres dans SQL Developer ou Toad, ou dans le fichier login.sql pour SQL * Plus.

13
mathguy

Essaye ça:

TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')

Vos données doivent être propres - tout doit être conforme au format d'origine, sinon vous rencontrerez des erreurs lors de la conversion TO_DATE.

3
DCookie