개발 & 데이터베이스/DB

오라클 자료형 변환 함수 TO_CHAR, TO_DATE와 DECODE함수, CASE문

K.두부 2022. 1. 29. 22:06
반응형
자료형 변환 함수

형 변환에는 두 가지 종류가 존재합니다. 자동으로 형 변환이 되는 암시적 형 변환, 사용자가 자료형을 직접 지정해주는 명시적 형 변환입니다.

 

1. 날짜, 숫자 데이터를 문자 데이터로 변환하는 함수

기준 포맷 설명
CC, SCC 네 자리 연도의 끝 두자리를 기준으로 사용
(2021년이면 2050 이하이므로, 반올림 경우 2021년으로 처리)
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y 날짜 데이터의 해당 연, 월, 일의 7월 1일 기준
(2021년 7월 1일 경우, 2022년으로 처리)
IYYY, IYY IY, I ISO 8061에서 제정한 날짜 기준년도 기준
Q 각 분기의 두 번째 달의 16일 기준
MONTH, MON, MM, RM 각 달의 16일 기준
WW 해당 연도의 몇 주 (1-53번째 주)를 기준
IW ISO 8061에서 제정한 날짜 기준 해당 연도의 주를 기준
W 해당 월의 주 (1-5번째 주)를 기준
DDD, DD, J 해당 일의 정오를 기준
DAY, DY, D 한 주가 시작되는 날짜를 기준
HH, HH12, HH24 해당일의 시간을 기준
MI 해당일 시간의 분을 기준

TO_CHAR 함수를 이용해서 날짜, 숫자 데이터를 문자 데이터로 형 변환이 가능하며 사용법은 아래와 같습니다.

SELECT SYSDATE
     , TO_CHAR(SYSDATE, 'MM') AS MM
     , TO_CHAR(SYSDATE, 'MON') AS MON
     , TO_CHAR(SYSDATE, 'MONTH') AS MONTH
     , TO_CHAR(SYSDATE, 'DD') AS DD
     , TO_CHAR(SYSDATE, 'DY') AS DY
     , TO_CHAR(SYSDATE, 'DAY') AS DAY
FROM DUAL;

2. 문자 데이터를 숫자 데이터로 변환하는 함수

 : TO_NUMBER 함수를 이용해서 문자 데이터를 숫자 데이터로 형 변환이 가능하다.

SELECT TO_NUMBER('53,000', '999,999') - TO_NUMBER('17,000', '999,999') AS TO_NUMBER
FROM DUAL;

3. 문자 데이터를 날짜 데이터로 변환하는 함수

 : TO_DATE 함수를 이용해서 문자 데이터를 날짜 데이터로 형 변환이 가능하다.

SELECT TO_DATE('2021-02-01', 'YYYY-MM-DD') AS TODATE1
     , TO_DATE('20210201', 'YYYY-MM-DD') AS TODATE2
FROM DUAL;

상황에 따라 다른 데이터를 반환하는 함수

DECODE 함수와 CASE문을 이용해서 상황에 따라 다른 데이터 형 변환이 가능하다.

 

1. DECODE 함수

SELECT FOOD_ID, SAL
     , DECODE(SAL,
     '5000', SAL*0.5,
     '15000', SAL-5000) AS UPDATE_SAL
FROM FOOD;

2. CASE문

SELECT FOOD_ID, SAL,
CASE SAL
WHEN 5000 THEN SAL*0.5
WHEN 15000 THEN SAL-5000
ELSE SAL * 2
END AS UPDATE_SAL
FROM FOOD;

 

반응형