TO_CHAR 함수(date_time)

설명

TO_CHAR 함수는 TIME 포맷(HH:MI:SS)을 포함하는 스트링 또는 TIME을 포함하는 날짜/시간 타입(TIME, TIMESTAMP, DATETIME) 값을 날짜/시간 포맷 1에 따라 스트링으로 변환하여 이를 반환하며, 리턴 값의 타입은 VARCHAR이다. 포맷 인자가 생략되면, 디폴트 포맷에 따라 문자열로 변환한다. 주어진 스트링과 대응하지 않는 포맷 지정자가 지정되면 에러를 반환한다.

구문

TO_CHAR( date_time [, format[, date_lang_string_literal ]] )

 

date_time :

date

• time

• timestamp

datetime

NULL

 

format :

• character strings (날짜/시간 포맷 1 표 참조)

NULL

 

date_lang_string_literal : (date_lang_string_literal 표 참조)

 

• 'en_US'

• 'ko_KR'

디폴트 날짜/시간 출력 포맷

날짜/시간 타입

디폴트 출력 포맷

DATE

'MM/DD/YYYY'

TIME

'HH:MI:SS AM'

TIMESTAMP

'HH:MI:SS AM MM/DD/YYYY'

DATETIME

'HH:MI:SS.FF AM MM/DD/YYYY'

날짜/시간 포맷 1

format 값

의미

CC

세기

YYYY, YY

4자리 연도, 2자리 연도

Q

분기(1, 2, 3, 4; 1월~3월 = 1)

MM

월(01-12; 1월 = 01)
참고: 분(minute)은 MI이다.

MONTH

월 이름

MON

축약된 월 이름

DD

날(1-31)

DAY

요일 이름

DY

축약된 요일 이름

D 또는 d

요일(1-7)

AM 또는 PM

오전/오후

A.M. 또는 P.M.

마침표가 포함된 오전/오후

HH 또는 HH12

시(1-12)

HH24

시(0-23)

MI

분(0-59)

SS

초(0-59)

FF

밀리초(0-999)

- / , . ; : "텍스트"

구두점과 인용구는 그대로 결과에 표현됨

date_lang_string_literal 예

포맷 구성 요소

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

"텍스트"

텍스트의 길이

나머지 포맷

포맷의 길이와 같음

예제

--creating a table having date/time type columns

CREATE TABLE datetime_tbl(a TIME, b DATE, c TIMESTAMP, d DATETIME);

INSERT INTO datetime_tbl VALUES(SYSTIME, SYSDATE, SYSTIMESTAMP, SYSDATETIME);

 

--selecting a VARCHAR type string from the data in the specified format

SELECT TO_CHAR(b, 'DD, DY , MON, YYYY') FROM datetime_tbl;

======================

  '04, THU , FEB, 2010'

 

SELECT TO_CHAR(c, 'HH24:MI, DD, MONTH, YYYY') FROM datetime_tbl;

======================

  '16:50, 04, FEBRUARY , 2010'

 

SELECT TO_CHAR(c, 'HH24:MI:FF, DD, MONTH, YYYY') FROM datetime_tbl;

ERROR: Invalid format.

 

SELECT TO_CHAR(d, 'HH12:MI:SS:FF pm, YYYY-MM-DD-DAY') FROM datetime_tbl;

======================

  '04:50:11:624 pm, 2010-02-04-THURSDAY '

 

SELECT TO_CHAR(TIMESTAMP'2009-10-04 22:23:00', 'Day Month yyyy');

======================

  'Sunday October 2009'