시간을 입력할 때 발생하는 'ORA-01849 시간은 1에서 12 사이어야 합니다' 오류에 대해 확인해 보도록 합시다. 😭 이 오류는 시간 형식을 지정할 때 잘못된 포맷을 사용했기 때문에 주로 발생하는데요!
예를 들어, 다음과 같은 쿼리를 실행하면 오류가 발생합니다.
SELECT TO_DATE('2001-01-01 00:00:00', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
ERROR at line 1:
ORA-01849: hour must be between 1 and 12위 쿼리는 오류가 발생하는데, 이는 'HH' 포맷이 12시간 형식(즉, 1부터 12 사이의 값)을 기대하기 때문입니다. 여기서 00시를 입력하면 12시간 형식에 맞지 않아 오류가 발생하는 것이지요.
이를 해결하려면 24시간 형식을 사용하거나, 1에서 12의 값이 포맷에 입력할 수 있도록 수정을 해야 합니다. 24시간 형식을 지정하려면 'HH24' 포맷을 사용하면 된답니다. 예를 들어, 다음 쿼리는 올바르게 실행됩니다
SELECT TO_DATE('2001-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
TO_DATE('2001-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
-------------------------------------------------------
2001/01/01이 쿼리에서는 'HH24' 포맷을 사용했기 때문에 0시부터 23시까지의 시간을 입력할 수 있어 오류가 발생하지 않습니다.
요약하자면, 시간을 입력할 때 12시간 형식을 사용하려면 1에서 12 사이의 값을 입력해야 하며, 24시간 형식을 사용하려면 'HH24' 포맷을 사용해야 합니다. 이를 통해 시간 포맷 오류를 수정할 수 있답니다.
