Oracle TO_CHAR
1. TO_CHAR란
Oracle TO_CHAR() 함수는 DATE 또는 Interval 값을 지정된 날짜 형식의 문자열로 변환한다.
Oracle TO_CHAR() 기능은 쿼리에 의해 반환된 내부 날짜 데이터를 특정 날짜 형식으로 포맷하는 데 매우 유용하다.
2. Syntax
TO_CHAR() 함수의 구문이다.
1
TO_CHAR(expr [, date_format] [, nslparam]);
3. Arguments
Oracle TO_CHAR()은 다음 세 가지 인수를 허용한다.
1) expr
expr은 변환해야 하는 DATE 또는 INTERval 값이다.
expr의 데이터 유형은 DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE 또는 TIMESTAMP WITH LOCAL TIME ZONE가 될 수 있다.
2) date_format
date_format은 결과 문자열이 있어야 하는 형식을 결정하는 문자열이다.
date_format 인수는 선택 사항이다. 생략하면 TO_CHAR() 함수는 DATE 값에 대한 기본 날짜 형식, TIMESTAMP 및 TIMESTAMP WITH TIME ZONE 값에 대한 기본 타임스탬프 형식, TIMESTAP WITH TIMEZON 값에 대한 표준 타임스탬프 형식을 사용한다.
3) nlsparam
nlsparam 인수는 결과 문자열에서 Monday, Mon, January, Jan 등 이름 및 약어에 대한 언어를 지정한다.
nlsparam 인수의 형식은 다음과 같다.
1
'NLS_DATE_LANGUAGE = language'
nlsparam 인수도 선택 사항이다. 생략하면 ‘TO_CHAR()’ 함수는 기본 날짜 언어를 사용한다.
4. Return value
Oracle TO_CHAR() 함수는 지정된 형식으로 DATE 또는 Interval 값을 나타내는 문자열을 반환한다.
5. Examples
1) 현재 시스템 날짜 변환
현재 시스템 날짜를 YYYY-MM-DD 형식의 문자열로 변환
- SQL
1
2
3
4
SELECT
TO_CHAR( sysdate, 'YYYY-MM-DD' )
FROM
dual
- 결과
1
2021-04-02
2) 현재 시스템 날짜를 긴 날짜 문자열로 변환하려면 DL 날짜 형식을 사용
- SQL
1
2
3
4
SELECT
TO_CHAR( sysdate, 'DL' )
FROM
dual
- 결과
1
Friday, April 02, 2021
3) 다른 언어로 일 및 달의 이름을 표시하려면 nlsparam 인수를 사용
- SQL
1
2
3
4
5
6
SELECT
TO_CHAR( sysdate,
'DL' ,
'NLS_DATE_LANGUAGE = KOREAN')
FROM
dual
- 결과
1
금요일, 4월 02, 2021
4) 간격 형식 지정
TO_CHAR() 함수를 사용하여 간격을 형식화한다.
- SQL
1
2
3
4
SELECT
TO_CHAR(INTERVAL '600' SECOND, 'HH24:MM') result
FROM
DUAL
- 결과
1
+00 00:10:00.000000
5) 테이블 데이터의 날짜 형식 지정
- 샘플 테이블
TO_CHAR() 기능을 사용하여 2016년에 입사한 분기를 반환
- SQL
1
2
3
4
5
6
7
8
9
10
SELECT
first_name,
last_name,
TO_CHAR( hire_date, 'Q' ) joined_quarter
FROM
employees
WHERE
hire_date BETWEEN DATE '2016-01-01' AND date '2016-12-31'
ORDER BY
first_name, last_name
- 결과