5.4. Conversion Functions (변환 함수)
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;
[표 1] 주요 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;
[표 2] 주요 Date Format Elements
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) |
"WW"와 "IW" 모두 1년의 몇 주차(1~53)로 조회하는 포맷이지만 "WW" 포맷은 무조건 1일에서 7일까지가 1주차로 시작을 하며, "IW" 포맷은 실제 달력에 맞게 주차가 계산된다.
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;
O_NUMBER
- - TO_NUMBER 함수는 CHAR, VARCHAR2의 데이터 타입을 숫자형식으로 변환 한다.
- - TO_ NUMBER(char) 형식으로 사용 할 수 있다.
-- 문자를 숫자로 변환하는 간단한 예제이다.
SELECT
TO_NUMBER(
'01210616'
)
FROM
DUAL;
Oracle Conversion Functions
ASCIISTR
BIN_TO_NUM
CAST
CHARTOROWID
COMPOSE
CONVERT
DECOMPOSE
HEXTORAW
NUMTODSINTERVAL
NUMTOYMINTERVAL
RAWTOHEX
RAWTONHEX
ROWIDTOCHAR
ROWIDTONCHAR
SCN_TO_TIMESTAMP
TIMESTAMP_TO_SCN
TO_BINARY_DOUBLE
TO_BINARY_FLOAT
TO_CHAR (character)
TO_CHAR (datetime)
TO_CHAR (number)
TO_CLOB
TO_DATE
TO_DSINTERVAL
TO_LOB
TO_MULTI_BYTE
TO_NCHAR (character)
TO_NCHAR (datetime)
TO_NCHAR (number)
TO_NCLOB
TO_NUMBER
TO_DSINTERVAL
TO_SINGLE_BYTE
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
TO_YMINTERVAL
TRANSLATE ... USING
UNISTR
'Database > Oracle SQL' 카테고리의 다른 글
6.1. 집계함수(Aggregate function)란? (0) | 2019.04.18 |
---|---|
5.7. NVL, NVL2, NULLIF, COALESCE (0) | 2019.04.18 |
5.6. DECODE와 CASE (0) | 2019.04.17 |
5.5. 기타 함수들 (0) | 2019.04.17 |
5.3. Datetime Functions (날짜 함수) (0) | 2019.04.17 |
5.2. Character Functions (문자형 함수) (0) | 2019.04.17 |
5.1. Numeric Functions (숫자형 함수) (0) | 2019.04.17 |
4.6. Commit과 Rollback 예제 (0) | 2019.04.17 |