입력 형식에 날짜 포멧이 각각 다른 data 를 'YYYYMMDD' 형태로 변환이 필요합니다.
방법이 있을까요??ㅜ
아래 예시 참고 부탁드립니다.
| IN | OUT |
| 20200725 | 20200725 |
| 01.Mar.2023 | 20230501 |
| 10/01/2022 | 20221001 |
케이스별로 변환하시면 됩니다.
다만 케이스가 한정적이어야 하겠지요?
모든 케이스가 다 조사가 된 건가요?
그리고
년월일, 일월년, 월일년 이렇게 순서가 제각각인데?
과면 10/01/2022 이 자료가 10월1일인지? 1월10일인지? 확신할 수 있는건가요?
답변 감사드립니다.
현재 케이스는 예시의 케이스가 전부이고 이후에 추가 될 가능성은 있습니다.
현재 케이스에서 10/01/2022 의 경우 MM/DD/YYYY 입니다.
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
;
아.. LENGTH 로CASE 를 구분할 수있었네요.
감사합니다.^^