TO_CHAR 함수는 날짜/시간 데이터 타입 또는 수치형 데이터 타입을 숫자 포맷에 맞는 문자열로 변환하여 이를 반환하며, 리턴 값의 타입은 VARCHAR이다. 만약, 포맷 인자가 지정되지 않으면, 디폴트 포맷에 따라 모든 유효 숫자를 문자열로 변환한다.
TO_CHAR(number_argument[, format_argument ])
number_argument :
• numeric(decimal)
• integer
• smallint
• bigint
• float(real)
• double
• NULL
format_argument :
• character strings (숫자 포맷 표 참조)
• NULL
포맷 구성 요소 |
예제 |
설명 |
---|---|---|
9 |
9999 |
"9"의 개수는 반환될 유효숫자 자릿수를 나타낸다. |
0 |
0999 |
포맷에서 지정된 유효숫자 자릿수가 충분한 경우, 정수부 앞 부분을 공백이 아닌 0으로 채워 반환한다. |
S |
S9999 |
지정된 위치에 양수/음수 부호를 출력한다. 부호는 문자열의 시작부분에만 사용할 수 있다. |
C |
C9999 |
지정된 위치에 ISO 통화 기호를 반환한다. |
,(쉼표) |
9,999 |
지정된 위치에 쉼표(",")를 반환한다. 포맷 내에는 여러 개의 쉼표가 허용된다. |
.(마침표) |
9.999 |
지정된 위치에 숫자의 정수부와 소수부를 구분하는 소수점 (".")을 출력한다. 포맷 내에는 하나의 소수점만 허용된다. |
EEEE |
9.99EEEE |
과학적 기수법(scientific notation)을 반환한다. |
--selecting a string casted from a number in the specified format
SELECT TO_CHAR(12345,'S999999'), TO_CHAR(12345,'S099999');
============================================
' +12345' '+012345'
SELECT TO_CHAR(1234567,'C9,999,999,999');
======================
' $1,234,567'
SELECT TO_CHAR(123.4567,'99'), TO_CHAR(123.4567,'999.99999'), TO_CHAR(123.4567,'99999.999');
==========================================================
'##' '123.45670' ' 123.457'
SELECT TO_CHAR(1.234567,'99.999EEEE'), TO_CHAR(1.234567E-4);
============================================
'1.235E+00' '0.0001234567'