본문 바로가기
오류 해결

[Oracle] ORA-01830: 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다

by 쿠쿠씨 2023. 7. 11.
반응형

 

'YYYY-MM-DD HH24:MI:SS' 형식의 문자열을 시분초를 제외하여 'YYYY-MM-DD' 형식으로 바꾸고 싶었습니다.

그래서 TO_DATE('YYYY-MM-DD HH24:MI:SS 형식 문자열','YYYY-MM-DD') 하자 해당 오류가 발생했습니다.

 

원인

TO_DATE() 함수 사용 시, 기존 날짜 형식과 바꾸려는 날짜 형식의 format이 일치하지 않아서 오류가 발생했습니다.

WITH TEMP AS(
SELECT '2023-07-11 11:00:00' AS CUR_DT FROM DUAL
)
SELECT TO_DATE(CUR_DT,'YYYY-MM-DD') AS CUR_DT2	--오류 발생 ORA-01830
FROM TEMP

'2023-07-11 11:00:00'의 데이터를 '2023-07-11'로 바꾸려하는데 format이 맞지 않습니다.

 

해결방법

TO_CHAR() 함수를 사용하여 'YYYY-MM-DD HH24:MI:SS' 형식의 문자열을 'YYYY-MM-DD'로 바꿀 수 있습니다.

WITH TEMP AS(
SELECT '2023-07-11 11:00:00' AS CUR_DT FROM DUAL
)
SELECT TO_CHAR(TO_DATE(CUR_DT,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD') AS CUR_DT2	
FROM TEMP

TO_DATE() 함수를 사용하여 문자열을 날짜 형식으로 변환하고, 그 결과를 TO_CHAR() 함수로 다시 'YYYY-MM-DD' 형식의 문자열로 변환합니다.

 

원하던 데이터 '2023-07-11'이 출력되었습니다.

 

반응형

댓글