TO_CHAR 함수는 날짜-시간 타입(DATE, TIME, TIMESTAMP)을 "날짜-시간" 포맷에 맞는 VARCHAR 타입으로 변환한다. 날짜-시간 포맷이 생략되었을 때에 DATE 타입이면 'MM/DD/YYYY' 포맷이, TIME 타입이면 'HH:MI:SS' 포맷이, TIMESTAMP 타입이면 'HH:MI:SS AM MM/DD/YYYY' 포맷이 적용된다.
TO_CHAR(
date_time_argument [, format_argument[, date_lang_string_literal
]] )
date_time_argument
:
date
time
timestamp
NULL
format_argument
:
character strings (날짜 포맷 표 참조)
NULL
date_lang_string_literal
: (date_lang_string_literal 표 참조)
'en_US'
'ko_KR'
포맷 구성 요소 |
의미 |
---|---|
CC |
세기 |
YYYY, YY |
4자리 연도, 2자리 연도 |
Q |
분기(1, 2, 3, 4; 1월~3월 = 1) |
MM |
월(01-12; 1월 = 01) |
MONTH |
월 이름 |
MON |
축약된 월 이름 |
DD |
날(1-31) |
DAY |
요일 이름 |
DY |
축약된 요일 이름 |
D 또는 d |
요일(1-7) |
AM 또는 PM |
오전/오후 |
A.M. 또는 P.M. |
마침표가 포함된 오전/오후 |
HH 또는 HH12 |
시(0-11) |
HH24 |
시(0-23) |
MI |
분(0-59) |
SS |
초(0-59) |
- / , . ; : "텍스트" |
구두점과 인용구는 그대로 결과에 표현됨 |
포맷 구성 요소 |
Date_lang_string_literal |
|
---|---|---|
'en_US' |
'ko_KR' |
|
MONTH |
JANUARY |
1월 |
MON |
JAN |
1 |
DAY |
MONDAY |
월요일 |
DY |
MON |
월 |
Month |
January |
1월 |
Mon |
Jan |
1 |
Day |
Monday |
월요일 |
Dy |
Mon |
월 |
month |
january |
1월 |
mon |
jan |
1 |
day |
monday |
월요일 |
Dy |
mon |
월 |
AM |
AM |
오전 |
Am |
Am |
오전 |
am |
am |
오전 |
A.M. |
A.M. |
오전 |
A.m. |
A.m. |
오전 |
a.m. |
a.m. |
오전 |
PM |
AM |
오전 |
Pm |
Am |
오전 |
pm |
am |
오전 |
P.M. |
A.M. |
오전 |
P.m. |
A.m. |
오전 |
p.m. |
a.m |
오전 |
반환값 포맷의 자릿수는 다음과 같다.
포맷 구성 요소 |
자릿수 |
---|---|
MONTH(Month, month) |
9 (ko_KR의 경우 4) |
MON(Mon, mon) |
3 (ko_KR의 경우 2 |
DAY(Day, day) |
9 (ko_KR의 경우 6) |
DY(Dy, dy) |
3 (ko_KR의 경우 2) |
HH12, HH24 |
2 |
"텍스트" |
텍스트의 길이 |
나머지 포맷 |
포맷의 길이와 같음 |
SELECT TO_CHAR(DATE '12/25/1999', 'dd') FROM db_root;
SELECT TO_CHAR(TIME '10:20:30 AM', 'HH24') FROM db_root;
SELECT TO_CHAR(TIMESTAMP '10:20:30 AM 12/25/1999', 'MONTH MON yyyy') FROM db_root;
SELECT TO_CHAR(TIMESTAMP '10:20:30 AM 12/25/1999', 'D') FROM db_root;
TO_CHAR 함수는 NUMERIC 타입을 숫자 포맷에 맞는 VARCHAR 타입으로 변환한다.
TO_CHAR(numeric_argument[,
format_argument ])
numeric_argument
:
numeric(decimal)
integer
smallint
float(real)
double
NULL
format_argument
:
character strings (숫자 포맷 표 참조)
NULL
format_argument : 반환할 값의 양식을 지정한다. 생략되면, 숫자 타입값에 따라서 기본 포맷을 따른다. 값이 NULL이면 결과로 NULL이 반환된다.
포맷 구성 요소 |
예제 |
설명 |
---|---|---|
9 |
9999 |
"9"의 개수가 반환될 유효숫자 자릿수를 나타낸다. 숫자 앞쪽의 0에 대해서는 공백이 반환된다. |
0 |
0999 |
숫자 앞쪽의 0에 대해서 공백이 아니라 0을 반환한다. |
S |
S9999 |
지정된 위치에 양수에 대해서는 "+", 음수에 대해서는 "-"를 반환한다. |
C |
C9999 |
지정된 위치에 ISO 통화 기호를 반환한다. |
, |
9,999 |
지정된 위치에 쉼표(",")를 반환한다. |
. |
9.999 |
지정된 위치에 숫자의 정수 부분과 소수 부분을 구분하는 마침표(".")를 반환한다. |
EEEE |
9.99EEEE |
과학적 기수법(scientific notation)을 반환한다. |
SELECT TO_CHAR(1234,'S9999') FROM db_root;
SELECT TO_CHAR(1.234E-4) FROM db_root;