[오라클 에러] “ORA-01839: 지정된 월에 대한 날짜가 부적합합니다.” 에러 해결 방법
- Database(데이터베이스)/Oracle
- 2020. 1. 4. 01:00
안녕하세요.
오늘은 제가 최근에 오라클 SQL문을 작성하다가 ORA-01839 지정된 월에 대한 날짜가 부적합합니다. 란 에러를 만나게 돼서 이 에러를 해결하는 방법을 같이 공유하려고 합니다.
우선, 아래와 같은 SQL문이 있습니다.
1 2 |
SELECT TO_CHAR(TO_DATE('20191231', 'YYYYMMDD') + (INTERVAL '+2' MONTH), 'YYYYMMDD') AS DAY FROM DUAL |
위의 SQL문은 제가 20191231 기준으로 2달뒤의 날짜를 조회하려는 SQL문을 작성해 본 것입니다.
그리고 나서 위의 SQL문을 실행시켜보도록 하겠습니다.
어라??
ORA-01839 에러를 만나게 되었습니다..
이렇게 에러가 발생한 이유는 20191231 기준으로 2달 뒤면 2월 30일이 되는데요.
2월달은 아시다시피 30일이 없고 28일까지 밖에 없습니다..
이렇듯 데이트 형식이 맞지 않아서 발생하는 에러 코드입니다.
그럼 이 에러코드를 어떻게 해결을 해야 할까요?
바로 예제 코드를 통해서 해결하는 방법에 대해서 알려드리도록 하겠습니다.
1 2 3 |
SELECT TO_CHAR(TO_DATE('20191231', 'YYYYMMDD') + (INTERVAL '60' DAY), 'YYYYMMDD') AS DAY FROM DUAL |
실행 결과
기존의 INTERVAL 기준을 MONTH에서 DAY로 바꿔주었더니, 에러 없이 20191231 기준 60일 뒤인 20200229라는 데이터가 제대로 조회된 것을 확인하실 수 있습니다.
(참고로, 2020년은 2월달 29일까지 있습니다.^^)
글 읽어 주셔서 감사합니다.^^
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 SQL] 오라클 “ORA-01704 문자열이 너무 깁니다.” “string literal too long” 에러 해결 방법 (0) | 2020.01.12 |
---|---|
[오라클 SQL] 오라클 일별, 주별, 월별, 분기별 구하는 방법 (0) | 2020.01.10 |
[오라클 SQL] 오라클 UNION, UNION ALL,Order By 하는 방법 (0) | 2019.12.22 |
[오라클 에러] 오라클 ORA-01722 : Invalid Number 에러 해결 방법 (0) | 2019.12.11 |
[오라클 PL/SQL] 오라클 임시 테이블 – 세션 GTT란? (0) | 2019.12.10 |
이 글을 공유하기