to_char 함수

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 11.3 LTS 이상

서식을 사용하여 캐스트를 STRING 반환 expr 합니다fmt.

Databricks Runtime 14.0 이하 to_char 에서는 숫자 형식을 지원합니다 expr .

Databricks SQL 및 Databricks Runtime 14.1 이상 to_char 에서도 형식 및 exprDATETIMESTAMPBINARY

to_char는 to_varchar 동의어입니다.

구문

to_char(expr, { numericFormat | datetimeFormat | stringFormat } )

numericFormat
  { ' [ S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

인수

  • expr: 숫자, datetime STRING또는 BINARY.
  • numericFormatSTRING: 숫자 형식의 형식이 지정된 출력을 expr 지정하는 리터럴입니다.
  • datetimeFormatSTRING: datetime 형식의 형식이 지정된 출력을 expr 지정하는 리터럴입니다.
  • stringFormatSTRING: 형식의 형식이 지정된 출력을 expr 지정하는 리터럴입니다BINARY.

반품

STRING 서식 지정 작업의 결과를 나타내는 값입니다.

datetmeFormat 는 Datetime 패턴에 지정된 패턴을 포함할 수 있습니다.

stringFormat 는 다음 중 하나일 수 있습니다(대/소문자를 구분하지 않는 경우).

  • 'base64'

    base 64 문자열입니다.

  • '16진수'

    16진수 형식의 문자열입니다.

  • 'utf-8'

    입력 이진 파일은 UTF-8 문자열로 디코딩됩니다.

numericFormat는 다음 요소를 포함할 수 있습니다(대/소문자를 구분하지 않음).

  • 0 또는 9

    0과 9 사이의 예상 숫자를 지정합니다. 형식 문자열에서 값이 0과 9 사이의 값을 갖는 숫자 시퀀스는 입력 값의 숫자 시퀀스와 일치합니다. 이렇게 하면 형식 문자열과 해당 시퀀스의 길이가 같은 결과 문자열이 생성됩니다. 0/9 시퀀스가 10진수 값의 일치하는 부분보다 더 많은 숫자로 구성되고, 0으로 시작하고, 소수점 앞에 있는 경우 결과 문자열은 왼쪽에 0이 채워집니다. 그렇지 않으면 공백으로 채워집니다.

  • . 또는 D

    소수점 위치를 지정합니다(선택 사항, 한 번만 허용됨).

  • , 또는 G

    그룹화(천 단위) 구분 기호(,)의 위치를 지정합니다. 각 그룹화 구분 기호의 왼쪽과 오른쪽에 0 또는 9가 있어야 합니다.

  • $

    $ 통화 기호의 위치를 지정합니다. 이 문자는 한 번만 지정할 수 있습니다.

  • S 또는 MI

    '-' 또는 '+' 기호의 위치를 지정합니다(선택 사항으로, 형식 문자열의 시작 또는 끝에서 한 번만 허용됨). S는 양수 값에 대해 +를 인쇄하지만 MI는 공백을 인쇄됩니다.

  • PR

    형식 문자열의 끝에만 허용됩니다. 입력 값이 음수이면 결과 문자열이 꺾쇠괄호로 래핑되도록 지정합니다. (‘<1>’).

정수 또는 10진수 부분 중에서 numExpr 허용되는 fmt해당 부분보다 더 많은 자릿수가 필요한 경우 함수는 해당 부분의 부분과 9 대체 # 된 부분 fmt0(예: '$###.##')을 모두 반환합니다.

fmt가 잘못된 형식인 경우 Databricks SQL에서 오류를 반환합니다.

이 함수는 to_varchar칭입니다.

예제

> SELECT to_char(454, '999');
 454

> SELECT to_char(454, '000.00');
 454.00

> SELECT to_char(12454, '99,999');
 12,454

> SELECT to_char(78.12, '$99.99');
 $78.12

> SELECT to_char(-12454.8, '99,999.9S');
 12,454.8-

> SELECT to_char(12454.8, '99,999.9S');
 12,454.8+

> SELECT '>' || to_char(123, '00000.00') || '<';
 >00123.00<

> SELECT '>' || to_char(123, '99999.99') || '<';
 >  123.00<

> SELECT to_char(1.1, '99');
 ##

> SELECT to_char(111.11, '99.9');
 ##.#

> SELECT to_char(111.11, '$99.9');
 $##.#

> SELECT to_char(date'2016-04-08', 'y');
 2016

> SELECT to_char(x'537061726b2053514c', 'base64');
 U3BhcmsgU1FM

> SELECT to_char(x'537061726b2053514c', 'hex');
 537061726B2053514C

> SELECT to_char(encode('abc', 'utf-8'), 'utf-8');
 abc

> SELECT to_char(111, 'wrong');
 Error: 'wrong' is a malformed format.