728x90
반응형
오라클
문자를 날짜 포멧으로 변환하기
오라클에서 문자를 날짜 포멧으로 변환하는 방법
- 정규식
변환될 문자가 NULL이거나, 공백, 또는 날짜로 변환 불가능한 문자라도 오류는 발생되지 않는다.
개인적으로 추천하는 방법이다.
SELECT REGEXP_REPLACE(NVL('20201010123111',''), '([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{2}).+', '\1-\2-\3') AS YYYYMMDD
, REGEXP_REPLACE(NVL('20201010123111',''), '([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})', '\4:\5:\6') AS HHMISS
, REGEXP_REPLACE(NVL('20201010123111',''), '([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})', '\1-\2-\3 \4:\5:\6') AS YYYYMMDDHHMISS
FROM DUAL;
- TO_DATE, TO_CHAR
변환될 문자가 NULL이거나 공백, 또는 날짜로 변환 불가능한 문자라면 오류가 발생한다.
SELECT TO_CHAR(TO_DATE('20221115111111' , 'YYYYMMDDHH24MISS'),'YYYY-MM-DD') AS YYYYMMDD
, TO_CHAR(TO_DATE('20221115111111' , 'YYYYMMDDHH24MISS'),'HH24:MI:SS') AS HHMISS
, TO_CHAR(TO_DATE('20221115111111' , 'YYYYMMDDHH24MISS'),'YYYY-MM-DD HH24:MI:SS') AS YYYYMMDDHHMISS
FROM DUAL;
날짜로 변환 불가능한 문자를 변환하려고 할때 오류가 발생한다.
728x90
반응형