Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för: Databricks SQL
Databricks Runtime 11.3 LTS och senare
Returnerar expr
cast till STRING
med formatering fmt
.
I Databricks Runtime 14.0 och tidigare stöder to_char
expr
av numeriska typer.
I Databricks SQL och Databricks Runtime 14.1 och senare to_char
har även stöd expr
för typer DATE
, TIMESTAMP
och BINARY
to_char
är en synonym för to_varchar.
Syntax
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumenten
-
expr
: Ett uttryck av typen numeriskt, datetime,STRING
ellerBINARY
. -
numericFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typen numerisk. -
datetimeFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typen datetime. -
stringFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typenBINARY
.
Returer
En STRING
som representerar resultatet av formateringsåtgärden.
datetmeFormat
kan innehålla de mönster som anges i Datetime-mönster.
stringFormat
kan vara något av följande (skiftlägesokänsligt):
"base64"
En base 64-sträng.
"hex"
En sträng i hexadecimalt format.
"utf-8"
Indatabinärfilen avkodas till UTF-8-strängen.
numericFormat
kan innehålla följande element (skiftlägesokänsligt):
0
eller9
Anger en förväntad siffra mellan 0 och 9. En sekvens med siffror med värden mellan 0 och 9 i formatsträngen matchar en sekvens med siffror i indatavärdet. Detta genererar en resultatsträng med samma längd som motsvarande sekvens som formatsträngen. Resultatsträngen är vänster vadderad med nollor om 0/9-sekvensen innehåller fler siffror än den matchande delen av decimalvärdet, börjar med 0 och är före decimaltecknet. Annars är den fylld med mellanslag.
.
ellerD
Anger decimaltecknets position (valfritt, tillåts bara en gång).
,
ellerG
Anger positionen för grupperingsavgränsaren (tusentals) (,). Det måste finnas 0 eller 9 till vänster och höger om varje grupperingsavgränsare.
$
Anger platsen för valutatecknet $ . Det här tecknet kan bara anges en gång.
S
ellerMI
Anger positionen för ett "-" eller "+"-tecken (valfritt, tillåts bara en gång i början eller slutet av formatsträngen). Observera att
S
skriver+
för positiva värden menMI
skriver ut ett blanksteg.PR
Tillåts endast i slutet av formatsträngen. anger att resultatsträngen kommer att omslutas av vinkelparenteser om indatavärdet är negativt. ('<1>')
Om antingen integralen eller decimaldelen i numExpr
kräver fler siffror än motsvarande del som tillåts i fmt
returnerar funktionen båda delarna i fmt
med 0
och 9
ersätts av #
(t.ex '$###.##'
. ).
Om fmt
är felaktigt, returnerar Databricks SQL ett fel.
Den här funktionen är ett alias för to_varchar.
Exempel
> 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.