TO_CHAR 함수(number)

설명

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');

 to_char(123.4567, '99', 'en_US')   to_char(123.4567, '999.99999', 'en_US')   to_char(123.4567, '99999.999', 'en_US')

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

  '##'                  '123.45670'           '  123.457'

 

 

SELECT TO_CHAR(1.234567,'99.999EEEE'), TO_CHAR(1.234567E-4);

 to_char(1.234567, '99.999EEEE', 'en_US')   to_char(1.234567E-4)

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

  '1.235E+00'           '0.0001234567'