to_char
-functie
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
expr
Hiermee wordt cast geretourneerd naar STRING
het gebruik van opmaakfmt
.
In Databricks Runtime 14.0 en eerder to_char
worden numerieke typen ondersteund expr
.
In Databricks SQL en Databricks Runtime 14.1 en hoger to_char
worden ook ondersteuning geboden expr
voor typen DATE
, TIMESTAMP
en BINARY
to_char
is een synoniem voor to_varchar.
Syntaxis
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumenten
expr
: een expressie van het type numeriek, datum/tijd ofSTRING
BINARY
.numericFormat
: EenSTRING
letterlijke waarde, waarbij de opgemaakte uitvoer voorexpr
het type numeriek wordt opgegeven.datetimeFormat
: EenSTRING
letterlijke waarde, waarbij de opgemaakte uitvoer voorexpr
het type datum/tijd wordt opgegeven.stringFormat
: EenSTRING
letterlijke waarde, waarbij de opgemaakte uitvoer voorexpr
het typeBINARY
wordt opgegeven.
Retouren
Een STRING
weergave van het resultaat van de opmaakbewerking.
datetmeFormat
kan de patronen bevatten die zijn opgegeven in Datum/tijd-patronen.
stringFormat
kan een van de volgende zijn (niet hoofdlettergevoelig):
'base64'
Een tekenreeks met grondtal 64.
'hex'
Een tekenreeks in de hexadecimale notatie.
'utf-8'
Het binaire invoerbestand wordt gedecodeerd naar de UTF-8-tekenreeks.
numericFormat
kan de volgende elementen bevatten (niet hoofdlettergevoelig):
0
of9
Hiermee geeft u een verwacht cijfer tussen 0 en 9. Een reeks cijfers met waarden tussen 0 en 9 in de notatietekenreeks komt overeen met een reeks cijfers in de invoerwaarde. Hiermee wordt een resultaattekenreeks gegenereerd van dezelfde lengte als de bijbehorende reeks als de notatietekenreeks. De resultaattekenreeks wordt links opgevuld met nullen als de reeks 0/9 meer cijfers bevat dan het overeenkomende deel van de decimale waarde, begint met 0 en valt vóór het decimaalteken. Anders wordt het opgevuld met spaties.
.
ofD
Hiermee geeft u de positie van het decimaalteken (optioneel, slechts eenmaal toegestaan).
,
ofG
Hiermee geeft u de positie van het groeperingsscheidingsteken (duizendtallen) (,). Er moet een 0 of 9 aan de linkerkant en rechts van elk groeperingsscheidingsteken zijn.
$
Hiermee geeft u de locatie van het $ valutateken. Dit teken mag slechts eenmaal worden opgegeven.
S
ofMI
Hiermee geeft u de positie van een '-' of '+'-teken (optioneel, slechts één keer toegestaan aan het begin of einde van de notatietekenreeks). Houd er rekening mee dat
S
er een spatie wordt afgedrukt+
voor positieve waarden, maarMI
dat er een spatie wordt afgedrukt.PR
Alleen toegestaan aan het einde van de notatietekenreeks; geeft aan dat de resultaattekenreeks wordt verpakt door punthaken als de invoerwaarde negatief is. ('<1>').
Als voor de integraal of het decimaal deel numExpr
meer cijfers zijn vereist dan het overeenkomstige deel dat is toegestaan fmt
, retourneert de functie zowel de onderdelen in de fmt
door 0
als 9
vervangen door #
(bijvoorbeeld '$###.##'
).
Als fmt
Databricks SQL een onjuiste indeling heeft, wordt een fout geretourneerd.
Deze functie is een alias voor to_varchar.
Voorbeelden
> 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.