반응형
'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'이 출력되었습니다.
반응형
'오류 해결' 카테고리의 다른 글
[Oracle] ORA-00972: 식별자의 길이가 너무 깁니다 (0) | 2023.07.25 |
---|---|
[Java] 함수 호출 시 NullPointerException 발생 (0) | 2023.07.20 |
[Oracle] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 (0) | 2023.06.16 |
[ORA-00913] 값의 수가 너무 많습니다. (0) | 2023.04.17 |
[ORA-01790] 대응하는 식과 같은 데이터 유형이어야 합니다. (0) | 2023.04.07 |
댓글