Sdílet prostřednictvím


Funkce to_char

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Vrátí expr přetypování na STRING použití formátování fmt.

Databricks Runtime 14.0 a starší to_char podporuje expr číselné typy.

V Databricks SQL a Databricks Runtime 14.1 a vyšší to_char podporuje expr také typy DATE, TIMESTAMPa BINARY

to_char je synonymem pro to_varchar.

Syntaxe

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

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

Argumenty

  • expr: Výraz číselného typu, datetime, STRINGnebo BINARY.
  • numericFormatSTRING: Literál určující formátovaný výstup pro expr číselný typ.
  • datetimeFormatSTRING: Literál určující formátovaný výstup pro expr typ datetime.
  • stringFormatSTRING: Literál určující formátovaný výstup pro expr typ BINARY.

Návraty

Představuje STRING výsledek operace formátování.

datetmeFormat může obsahovat vzory zadané v vzorech Datetime.

stringFormat může být jedna z následujících (nerozlišující malá a velká písmena):

  • "base64"

    Základní řetězec 64.

  • Hex

    Řetězec v šestnáctkovém formátu.

  • 'utf-8'

    Vstupní binární soubor je dekódován na řetězec UTF-8.

numericFormat může obsahovat následující prvky (nerozlišují malá a velká písmena):

  • 0 nebo 9

    Určuje očekávanou číslici mezi 0 a 9. Posloupnost číslic s hodnotami od 0 do 9 ve formátovacím řetězci odpovídá sekvenci číslic ve vstupní hodnotě. Tím se vygeneruje výsledný řetězec se stejnou délkou jako odpovídající sekvence jako formátovací řetězec. Výsledný řetězec je vlevo vycpaný nulami, pokud sekvence 0/9 obsahuje více číslic než odpovídající část desetinné čárky, začíná číslem 0 a je před desetinnou čárkou. V opačném případě je vycpaná mezerami.

  • . nebo D

    Určuje pozici desetinné čárky (volitelné, povoleno pouze jednou).

  • , nebo G

    Určuje pozici oddělovače seskupení (tisíce). Musí existovat 0 nebo 9 vlevo a vpravo od každého oddělovače seskupení.

  • $

    Určuje umístění znaménka měny $. Tento znak lze zadat pouze jednou.

  • S nebo MI

    Určuje pozici znaménka -nebo +(volitelné, povoleno pouze jednou na začátku nebo na konci řetězce formátu). Všimněte si, že S vytiskne + kladné hodnoty, ale MI vytiskne mezeru.

  • PR

    Povoleno pouze na konci formátovací řetězec; určuje, že výsledný řetězec bude zabalen do úhlových závorek, pokud je vstupní hodnota záporná. ('<1>').

Pokud integrál nebo desetinná část numExpr vyžaduje více číslic než odpovídající povolená fmtčást , funkce vrátí obě části v fmt sadě s 0 a 9 nahrazené # (např '$###.##'. ).

Pokud fmt je poškozený Databricks SQL, vrátí chybu.

Tato funkce je aliasem pro to_varchar.

Příklady

> 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.