꿍스뿡이의 드림빌더
ORACLE 24:00로 표현되는 부분 치환하기
안녕하세요. 꿍스뿡이입니다!
오라클 운영중에 종종 발생되는 24:00를 시간으로 치환할때 발생하는 오류에 대한
해결방법을 공유합니다.
기본데이터
1. 테이블명 : TEST
2. 대상칼럼 : DT(일자) VARCAHR2(8 BYTE), TIME(시간) VARCHAR2(4 BYTE)
3. 원하는조건 : 시간에 24가 들어간 부분을 00으로 치환하고자 할때
4. 현재데이터 : DT 컬럼 -> 20190101, TIME컬럼 -> 24:15
5. 변경하고자 하는 데이터 : 20190101 0015
처리방법
뭔가 신박한 처리방법이 있으시면 댓글로 남겨주시기 바랍니다.
저는 해당부분을 CASE문을 이용하여 처리했습니다.
필요하신 분은 바로 복사하여 이용해주세요~
WITH TEST AS (SELECT '20190101' AS DT, '2415' AS TIME FROM DUAL)
SELECT TO_DATE(BASE_DT, 'YYYYMMDDHH24MISS')
FROM (SELECT DT || CASE WHEN SUBSTR(TIME,0,2) LIKE '24%' THEN '00'
ELSE SUBSTR(TIME,0,2)
END
|| SUBSTR(TIME, 3,2) AS BASE_DT
FROM TEST)
내용이 도움이 되셨거나 초보 블로거를 응원하고 싶으신 분은 아래 하트♥공감 버튼을 꾹 눌러주세요!
내용의 수정이 있거나 도움이 필요하신 분은 댓글을 남겨주세요!
'2.IT > DB,ORACLE' 카테고리의 다른 글
[ORACLE] 오라클 여러 행을 하나의 컬럼으로 만들기 (LISTAGG ) (0) | 2020.07.07 |
---|---|
[ORACLE] 일자 단일행 여러행으로 만들기 (1) | 2019.06.11 |
[SQL] PROCEDURE (프로시저) (0) | 2018.10.27 |
[SQL] MERGE문 (한번에 INSERT, UPDATE) (2) | 2018.10.24 |
[SQL] DELETE문 (데이터삭제) (0) | 2018.10.22 |