2. Database/2_2 Oracle Error
[Oracle - Error] ORA-01847: 달의 날짜는 1에서 말일 사이어야 합니다. - "day of month must be bet
코딩병원
2020. 10. 5. 12:35
이번 글에서는 ORA-01847: day of month must be between 1 and last day of month 에러 해결 방법에 대하여 알아보겠습니다.
ORA-01847 : 달의 날짜는 1에서 말일 사이어야 합니다.
ORA-01847: day of month must be between 1 and last day of month
쿼리를 짜다가 아래와 같은 에러가 발생하였습니다.

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.
아래의 쿼리는 '20201232'의 문자열을 날짜 형식으로 바꿔보도록 시도한 예제입니다.

위의 쿼리를 실행하니 ORA-01847: day of month must be between 1 and last day of month 에러가 발생하였습니다.
에러가 발생한 이유는 간단합니다. 12월은 1~31일까지 있습니다.
그런데, 12월 32일을 출력하려고 하니까 발생한 에러였습니다.
해결 방법
해당 월에 따라, 일자를 범위 안에서 작성하시면 됩니다.
12월은 1일부터 31일까지 있으니 1~31을 일자로 받아서 쿼리를 다시 실행해보겠습니다.

일자를 올바르게 입력하니 쿼리가 잘 실행되는 것을 확인할 수 있습니다.