- 카테고리:
TO_CHAR , TO_VARCHAR¶
입력 식을 문자열로 변환합니다. NULL 입력의 경우, 출력은 NULL입니다.
이러한 함수는 동의어입니다.
구문¶
TO_CHAR( <expr> )
TO_CHAR( <numeric_expr> [, '<format>' ] )
TO_CHAR( <date_or_time_expr> [, '<format>' ] )
TO_CHAR( <binary_expr> [, '<format>' ] )
TO_VARCHAR( <expr> )
TO_VARCHAR( <numeric_expr> [, '<format>' ] )
TO_VARCHAR( <date_or_time_expr> [, '<format>' ] )
TO_VARCHAR( <binary_expr> [, '<format>' ] )
인자¶
필수:
expr
모든 데이터 타입의 식입니다.
numeric_expr
숫자 식입니다.
date_or_time_expr
DATE, TIME 또는 TIMESTAMP 형식의 식입니다.
binary_expr
BINARY 또는 VARBINARY 형식의 식입니다.
선택 사항:
format
출력 문자열의 형식입니다.
numeric_expr
의 경우, 숫자 식을 해석하는 데 사용되는 SQL 형식 모델을 지정합니다. 자세한 내용은 SQL 형식 모델 섹션을 참조하십시오.date_or_time_expr
의 경우, 문자열을 구문 분석하거나 생성할 예상 형식을 지정합니다. 자세한 내용은 변환 함수의 날짜 및 시간 형식 섹션을 참조하십시오.기본값은 다음 세션 매개 변수의 현재 값입니다.
DATE_OUTPUT_FORMAT (DATE 입력의 경우)
TIME_OUTPUT_FORMAT (TIME 입력의 경우)
TIMESTAMP_OUTPUT_FORMAT (TIMESTAMP 입력의 경우)
binary_expr
의 경우, 문자열을 생성하는 형식을 지정합니다(예: ‘HEX’, ‘BASE64’ 또는 ‘UTF-8’).자세한 내용은 지원되는 바이너리 형식의 개요 섹션을 참조하십시오.
반환¶
이 함수는 VARCHAR 데이터 타입 또는 NULL 값을 반환합니다.
사용법 노트¶
VARIANT, ARRAY 또는 OBJECT 입력의 경우, 출력은 JSON 문서 또는 JSON 기본 값을 포함하는 문자열입니다(VARIANT 또는 OBJECT에 XML 태그가 포함된 경우는 제외. 이 경우, 출력은 XML 문서가 포함된 문자열임).
VARIANT에 저장된 문자열은 그대로 유지됩니다(즉, JSON 문자열로 변환되지 않음).
JSON null 값은 “null”이라는 단어가 포함된 문자열로 변환됩니다.
예¶
다음 예제에서는 숫자, 타임스탬프, 날짜를 문자열로 변환합니다.
숫자를 변환하는 예¶
숫자 값을 지정된 형식 의 문자열로 변환합니다.
CREATE OR REPLACE TABLE convert_numbers_to_strings(column1 NUMBER);
INSERT INTO convert_numbers_to_strings VALUES
(-12.391),
(0),
(-1),
(0.10),
(0.01),
(3987),
(1.111);
SELECT column1 AS orig_value,
TO_CHAR(column1, '">"$99.0"<"') AS D2_1,
TO_CHAR(column1, '">"B9,999.0"<"') AS D4_1,
TO_CHAR(column1, '">"TME"<"') AS TME,
TO_CHAR(column1, '">"TM9"<"') AS TM9,
TO_CHAR(column1, '">"0XXX"<"') AS X4,
TO_CHAR(column1, '">"S0XXX"<"') AS SX4
FROM convert_numbers_to_strings;
+------------+----------+------------+-------------+------------+--------+---------+
| ORIG_VALUE | D2_1 | D4_1 | TME | TM9 | X4 | SX4 |
|------------+----------+------------+-------------+------------+--------+---------|
| -12.391 | >-$12.4< | > -12.4< | >-1.2391E1< | >-12.391< | >FFF4< | >-000C< |
| 0.000 | > $0.0< | > .0< | >0E0< | >0.000< | >0000< | >+0000< |
| -1.000 | > -$1.0< | > -1.0< | >-1E0< | >-1.000< | >FFFF< | >-0001< |
| 0.100 | > $0.1< | > .1< | >1E-1< | >0.100< | >0000< | >+0000< |
| 0.010 | > $0.0< | > .0< | >1E-2< | >0.010< | >0000< | >+0000< |
| 3987.000 | > $##.#< | > 3,987.0< | >3.987E3< | >3987.000< | >0F93< | >+0F93< |
| 1.111 | > $1.1< | > 1.1< | >1.111E0< | >1.111< | >0001< | >+0001< |
+------------+----------+------------+-------------+------------+--------+---------+
출력은 지정된 형식에 따라 값이 문자열로 변환되는 방식을 보여줍니다.
>
및<
기호는 출력에 포함되는 문자열 리터럴입니다. 이러한 기호를 통해 공백이 삽입된 위치를 더 쉽게 볼 수 있습니다.D2_1
열은 숫자 앞에$
가 표시된 값을 표시합니다.3987
값의 경우 숫자의 정수 부분 자릿수가 형식의 자릿수 위치보다 많으므로 모든 자릿수가#
으로 인쇄되어 오버플로를 나타냅니다.0.10
,0.01
,1.111
값의 경우 숫자의 분수 부분에 자릿수가 형식의 자릿수 위치보다 많으므로 분수 값이 잘립니다.
D4_1
열은 숫자의 정수 부분에 공백으로 0값이 표시됨을 나타냅니다.0
,0.10
,0.01
값의 경우 공백이 구분 기호 앞의 0을 대체합니다.0.10
,0.01
,1.111
값의 경우 숫자의 분수 부분에 자릿수가 형식의 자릿수 위치보다 많으므로 분수 값이 잘립니다.
TME
열은 값을 과학적 표기법으로 표시합니다.TM9
열은 숫자 값에 따라 정수 또는 소수로 값을 표시합니다.X4
열은 소수 부분을 제외한 16진수 숫자로 값을 표시합니다.SX4
열은 숫자의 절대값의 16진수로 값을 표시하며, 숫자 기호(+
또는-
)를 포함합니다.
이 예제에서는 로그 값을 문자열로 변환합니다.
SELECT TO_VARCHAR(LOG(3,4));
+----------------------+
| TO_VARCHAR(LOG(3,4)) |
|----------------------|
| 1.261859507 |
+----------------------+
타임스탬프와 날짜를 변환하는 예¶
TIMESTAMP 값을 지정된 형식의 문자열로 변환합니다.
SELECT TO_VARCHAR('2024-04-05 01:02:03'::TIMESTAMP, 'mm/dd/yyyy, hh24:mi hours');
+---------------------------------------------------------------------------+
| TO_VARCHAR('2024-04-05 01:02:03'::TIMESTAMP, 'MM/DD/YYYY, HH24:MI HOURS') |
|---------------------------------------------------------------------------|
| 04/05/2024, 01:02 hours |
+---------------------------------------------------------------------------+
DATE 값을 기본 형식의 문자열로 변환합니다.
SELECT TO_VARCHAR('03-April-2024'::DATE);
+-----------------------------------+
| TO_VARCHAR('03-APRIL-2024'::DATE) |
|-----------------------------------|
| 2024-04-03 |
+-----------------------------------+
DATE 값을 지정된 형식의 문자열로 변환합니다.
SELECT TO_VARCHAR('03-April-2024'::DATE, 'yyyy.mm.dd');
+-------------------------------------------------+
| TO_VARCHAR('03-APRIL-2024'::DATE, 'YYYY.MM.DD') |
|-------------------------------------------------|
| 2024.04.03 |
+-------------------------------------------------+