TO_DATE의 기본 format_mask 차이가 어디서 오는건가요? 0 2 793

by 기린기린 [Oracle 기초] [2020.07.13 09:56:53]


안녕하세요.

오라클 펑션 안에 TO_DATE를 넣었을 때 포멧 차이가 발생하는데요.

CREATE OR REPLACE FUNCTION "FN_DATE_CHK" (
                        P_STR  VARCHAR2 ,    
                        P_MSG  VARCHAR2      
                      ) RETURN VARCHAR2
  IS

  BEGIN
    RETURN TO_DATE(P_STR);
    EXCEPTION
      WHEN OTHERS THEN BEGIN
           RETURN P_MSG;
      END;
  END FN_DATE_CHK;




 

SELECT FN_DATE_CHK('20200102', NULL) FROM DUAL;

결과: 20/01/02

SELECT TO_DATE('20200102') FROM DUAL;

결과: 2020-01-02

왜 차이가 발생되는건가요?


 select * from nls_session_parameters;

내용 중

NLS_DATE_FORMAT 이 RR/MM/DD 입니다.



by pajama [2020.07.13 11:07:27]

혹시 툴에서 보실때 그런건가요?

sqlplus에서는 똑같이 보이는데 자바툴에서 볼때 다르게 보이네요.

FN_DATE_CHK는 VARCHAR2 타입으로, TO_DATE는 DATE 타입으로 리턴해서 그렇게 보이는 것 같네요.


by 기린기린 [2020.07.13 11:18:52]

PL/SQL Developer에서 보고 있습니다.
이해되었습니다.
답변 정말 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입