DB/Oracle

[Oracle] 오라클 날짜 타입(TYPE)별 비교 - TO_CHAR,TO_DATE

콩다영 2020. 11. 27.
728x90

OracleDB 날짜 타입(TYPE)별 비교 방법  TO_CHAR, TO_DATE

 

ORA-01861 리터럴이 형식 문자열과 일치하지 않음 오류 해결방법

 

 


쿼리를 짜고 실행했을 때

 

'ORA-01861 리터럴이 형식 문자열과 일치하지 않음' 오류가 발생할 경우가 있다.

 

 

 

주로 날짜를 비교할 때 String형과 Date형을 함께 비교했을 때거나

String에다가 Date를 넣는다던지 형타입을 맞춰주지 않고 값을 넣을때 발생한다.

 

이 때 TO_CHARTO_DATE를 사용해서 형변환을 통해 날짜 타입(TYPE)을 맞춰주면 해결된다 !!!

 

 

 

 

 

 

TO_CHAR()

: String형 날짜 비교   Date -> String 으로 형변환

TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')

//결과
//20201127142850

이렇게 작성하면 현재시간이 String으로 결과가 나온다. 

 

 

 

TO_DATE()

: Date형 날짜 비교   String -> Date 로 형변환

TO_DATE('20201127142930', 'YYYYMMDDHH24MISS')

// 결과
// 2020/11/27 14:29:30

 

결과를 확인해 보면 String타입을 왜 Date타입과 비교할 수 없는지 ,

왜 형변환을 통해 타입을 맞춰서 비교해야하는지 한눈에 알아볼 수 있다 ..!

 

 

 

728x90
반응형

댓글