본문 바로가기
CS/데이터베이스

[Oracle] 문자형으로 데이터 유형 변환 (TO_CHAR)

by 김크롱 2020. 8. 21.

문자형으로 데이터 유형 변환 (TO_CHAR)

: 날짜형, 숫자형 데이터를 문자형 데이터로 변환 출력

--column1이 '한국'인 경우 column2의 요일과 column3의 nickname을 천단위를 구분해 콤마(,)를 붙여 출력
SELECT column1, TO_CHAR(column2, 'DAY') as 요일, TO_CHAR(column3, '999,999') as nickname
	FROM tablename
    WHERE column1='한국';

* TO_CHAR() : 숫자형 -> 문자형, 날짜형 -> 문자형

SELECT column1, TO_CHAR(column1, 'RRRR') as 연도, TO_CHAR(column1, 'MM') as 달,
	TO_CHAR(column1, 'DD') as 일, TO_CHAR(column1, 'DAY') as 요일
    FROM tablename
    WHERE column2='한국';

 

날짜 포맷(날짜형 -> 문자형)

연도 RRRR, YYYY, RR, YY WW, IW, W
MM, MON 시간 HH, HH24
DD MI
요일 DAY, DY SS

 

- 조건으로 활용

-- column2가 '2020'인 경우
SELECT column1, column2
	FROM tablename
    WHERE TO_CHAR(column2, 'RRRR')='2020';

 

 

- EXTRACT() : 추출

-- column2에서 연도/월/일/시간/분/초 추출 : EXTRACT()
SELECT column1 as nickname,
	EXTRACT(from column2) as 연도,
	EXTRACT(from column2) as 달,
    EXTRACT(from column2) as 요일
    FROM tablename;

 

- 숫자 표시

: 단위, 원화

--천단위까지 표시
SELECT column1 as nickname1, TO_CHAR(column2, '999,999') as nickname2
	FROM tablename;
    
    
--백만단위까지 표시
SELECT column1 as nickname1, TO_CHAR(column2, '999,999,999') as nickname2
	FROM tablename;
    
--L : \(원화) 표시
SELECT column1 as nickname1, TO_CHAR(column2, 'L999,999,999') as nickname2
	FROM tablename;