언어/SQL

변환 함수(TO_CHAR, TO_DATE, TO_NUMBER)

asu2880 2022. 6. 14. 10:25

TO_CHAR

TO_CHAR 함수는 DATE형, NUMBER형을 문자 타입으로 변환하는 함수이다.
TO_CHAR(number), TO_CHAR(number, format), TO_CHAR(date, format) 형식으로 사용할 수 있다.

🍳 Number Format의 변환 예제

NUMBER 타입의 데이터를 아래와 같이 특정 형식의 문자 타입으로 변환 할 수 있다.

-- 콤마 예제
SELECT TO_CHAR(12345678,'999,999,999') comma FROM DUAL;

-- 소숫점 예제 
SELECT TO_CHAR(123.45678,'999,999,999.99') period FROM DUAL;

-- $ 표시 예제
SELECT TO_CHAR(12345678,'$999,999,999') dollar  FROM DUAL;

-- Local 화폐 표시 예제 (한국의 경우 ₩로 자동 변환 됨)
SELECT TO_CHAR(12345678,'L999,999,999') local  FROM DUAL;

-- 왼쪽에 0을 삽입
SELECT TO_CHAR(123,'09999') zero FROM DUAL; 

-- 16진수로 변환
SELECT TO_CHAR(123,'XXXX') hexadecimal  FROM DUAL;

 

🌱 주요 Number Format Elements

Format 설명
, (comma) 9,999 콤마 형식으로 변환
. (period) 99.99 소수점 형식으로 변환
0 09999 왼쪽에 0을 삽입
$ $9999 $ 통화로 표시
L L9999 Local 통화로 표시(한국의 경우 \)
XXXX XXXX 16진수로 표시

 

🍳 Date Format의 변환 예제

DATE 타입의 데이터를 아래와 같이 특정 형식의 문자 타입으로 변환 할 수 있다.

 
-- 년,월,일,시,분,초 예제
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') "sysdate"
FROM DUAL;
 
-- 365일 중 몇 일째인지 조회
SELECT TO_CHAR(SYSDATE, 'DDD') "Day of year" FROM DUAL;
 
-- 53주 중 몇 주차 인지 조회
SELECT TO_CHAR(SYSDATE, 'IW') "Week of year" FROM DUAL;
 
-- 해당 월의 이름 조회
SELECT TO_CHAR(SYSDATE, 'MONTH') "Name of month" FROM DUAL;

 

🌱 주요 Date Format Elements

"WW"와 "IW" 모두 1년의 몇 주차(1~53)로 조회하는 포맷이지만 "WW" 포맷은 무조건 1일에서 7일까지가 1주차로 시작을 하며, "IW" 포맷은 실제 달력에 맞게 주차가 계산된다.

 

Format 설명 Format 설명
YYYY 4자리 연도 YY 두자리 연도
D Day of week (1-7) DAY 요일(월,화..)
DD Day of month (1-31) DDD Day of year (1-366)
MM 해당월을 01~12로 표시 MONTH Name of month
WW Week of year (1-53) IW Week of year (1-53) 국제 표준
W Week of month (1-5) HH24 Hour of day (0-23)
HH Hour of day (1-12) MI Minute (0-59)
SS Second (0-59)    

TO_DATE

  • TO_DATE 함수는 CHAR, VARCHAR2형을 DATE 타입으로 변환한다.
  • TO_DATE(char, format) 형식으로 사용 할 수 있다.
  • [표 2] 주요 Date Format Elements 에서 'W', 'WW' Format을 제외한 나머지는 TO_DATE 함수의 format으로 사용 할 수 있다.
-- DATE 타입으로 변환하는 예제
SELECT TO_DATE('2011-01-01','RRRR-MM-DD') FROM DUAL;

 

TO_NUMBER

  • TO_NUMBER 함수는 CHAR, VARCHAR2의 데이터 타입을 숫자형식으로 변환 한다.
  • TO_ NUMBER(char) 형식으로 사용 할 수 있다.
-- 문자를 숫자로 변환하는 간단한 예제이다.
SELECT TO_NUMBER('01210616') FROM DUAL;
 

 

728x90
반응형

'언어 > SQL' 카테고리의 다른 글

DECODE, CASE  (0) 2022.06.14
집계함수 (COUNT, MAX, MIN, AVG, SUM, STDDEV)  (0) 2022.06.14
시간/날짜 함수 (오라클)  (0) 2022.06.13
시간/날짜 함수 (MYSQL)  (0) 2022.06.13
문자형 함수  (0) 2022.06.13