728x90
OracleDB 날짜 타입(TYPE)별 비교 방법 TO_CHAR, TO_DATE
ORA-01861 리터럴이 형식 문자열과 일치하지 않음 오류 해결방법
쿼리를 짜고 실행했을 때
'ORA-01861 리터럴이 형식 문자열과 일치하지 않음' 오류가 발생할 경우가 있다.
주로 날짜를 비교할 때 String형과 Date형을 함께 비교했을 때거나
String에다가 Date를 넣는다던지 형타입을 맞춰주지 않고 값을 넣을때 발생한다.
이 때 TO_CHAR나 TO_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
반응형
'DB > Oracle' 카테고리의 다른 글
[Oracle] TRIM, LTRIM, RTRIM 함수 사용방법 (0) | 2021.02.15 |
---|---|
[Oracle] SQL 중복제거 DISTINCT 사용법 (0) | 2021.02.08 |
[Oracle] EXISTS와 IN 함수 차이 비교 (3) | 2021.02.04 |
[Oracle] 오라클 시간 계산 / 표현식 (0) | 2020.11.25 |
[Oracle] MERGE문으로 INSERT, UPDATE문 실행하기 (0) | 2020.08.18 |
댓글