날짜형식 변환 질문드립니다. 0 4 1,441

by zzhozang [SQL Query] [2022.10.07 11:47:54]


입력 형식에 날짜 포멧이 각각 다른 data 를 'YYYYMMDD' 형태로 변환이 필요합니다.

방법이 있을까요??ㅜ

아래 예시 참고 부탁드립니다.

IN OUT
20200725 20200725
01.Mar.2023 20230501
10/01/2022 20221001
by 마농 [2022.10.07 12:55:12]

케이스별로 변환하시면 됩니다.
다만 케이스가 한정적이어야 하겠지요?
모든 케이스가 다 조사가 된 건가요?
그리고
년월일, 일월년, 월일년 이렇게 순서가 제각각인데?
과면 10/01/2022 이 자료가 10월1일인지? 1월10일인지? 확신할 수 있는건가요?


by zzhozang [2022.10.07 13:06:49]

답변 감사드립니다.

현재 케이스는 예시의 케이스가 전부이고 이후에 추가 될 가능성은 있습니다.

현재 케이스에서 10/01/2022 의 경우 MM/DD/YYYY 입니다.


by 마농 [2022.10.07 13:15:04]
WITH t AS
(
SELECT '20200725' i_dt FROM dual
UNION ALL SELECT '01.Mar.2023' FROM dual
UNION ALL SELECT '10/01/2022'  FROM dual
)
SELECT i_dt
     , DECODE(LENGTH(i_dt)
       ,  8, i_dt
       , 10, TO_CHAR(TO_DATE(i_dt, 'mm/dd/yyyy'), 'yyyymmdd')
       , 11, TO_CHAR(TO_DATE(i_dt, 'dd.Mon.yyyy', 'nls_date_language=american'), 'yyyymmdd')
       ) o_dt
  FROM t
;

 


by zzhozang [2022.10.07 14:17:30]

아.. LENGTH 로CASE 를 구분할 수있었네요.

감사합니다.^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입