2016-10-24 5 views
3

MM은/YYYY/DD합니다.오라클 변환 DD-MON-YY 내가 '<strong>DD/MM/YYYY</strong>'에 '<strong>DD-MON-YY</strong>'에서 VARCHAR2 컬럼의 형식을 변환하려고

예에서

:

  • '월'을 '01-JAN-16'에서 '2016년 1월 1일'경우

    당신은 요청할 수 있습니다하거나 도움이 될 수 있습니다에 일부는 영어이지만 현재 NLS 설정은 터키어입니다.

2000은 어떻게이 작업을 수행 할 수 있습니다 후

  • 모든 년은? 사전에 감사합니다 ..

  • +4

    왜 varchar 열에 날짜를 저장하고 있습니까? –

    답변

    6

    NLS_DATE_LANGUAGE 매개 변수를 제공하지 않으면 사용자 고유의 세션 매개 변수가 사용됩니다.

    은 당신과 같이 그것을 대체 할 수 있습니다 :이 내용은이 쿼리, 아무것도에 영향을 미칠 것입니다

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

    . 당신이

    ALTER SESSION SET NLS_DATE_LANGUAGE='ENGLISH' 
    

    ,이 같은 많은 날짜로 작업해야하는 경우 - 당신은 나중에 다시 변경할 수 있습니다, 또는 때 세션이 종료 터키어로 재설정하고 다른 세션을 시작합니다.

    이 변경 사항을 거의 영구적으로 적용하려면 SQL Developer 또는 Toad의 설정 또는 SQL * Plus의 login.sql에 설정하십시오.

    +0

    감사합니다. 많은 mathguy와 Dcookie! – kzmlbyrk

    +0

    내가 할 수 있으면 나는 당신에게 1 개의 표를 더 많이 줘야했다! – benshabatnoam

    2

    이 시도 :

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

    귀하의 데이터가 깨끗해야 - 모든 원래의 형식을 준수해야하거나 TO_DATE 변환에 오류가 발생할 수 있습니다.

    +0

    답장을 보내 주셔서 감사합니다. "01843. 00000 -"유효하지 않은 달 "이라는 오류 메시지가 나타납니다. 모든 값이 동일한 형식으로되어 있는지 확인했습니다. NLS 설정과 관련이 있습니까? 이것을 해결할 수있는 방법은 무엇입니까? – kzmlbyrk