Funzione to_char
Si applica a: Databricks SQL Databricks Runtime 11.3 LTS e versioni successive
Restituisce expr
impostato su STRING
usando la formattazione fmt
.
In Databricks Runtime 14.0 e versioni precedenti to_char
supporta expr
tipi numerici.
In Databricks SQL e Databricks Runtime 14.1 e versioni successive to_char
supporta expr
anche i tipi DATE
, TIMESTAMP
e BINARY
to_char
è un sinonimo di to_varchar.
Sintassi
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argomenti
expr
: espressione di tipo numeric, datetime,STRING
oBINARY
.numericFormat
: valoreSTRING
letterale, che specifica l'output formattato perexpr
di tipo numerico.datetimeFormat
: valoreSTRING
letterale, specificando l'output formattato perexpr
di tipo datetime.stringFormat
: valoreSTRING
letterale, specificando l'output formattato perexpr
di tipoBINARY
.
Valori restituiti
Oggetto STRING
che rappresenta il risultato dell'operazione di formattazione.
datetmeFormat
può contenere i modelli specificati nei modelli Datetime.
stringFormat
può essere uno dei seguenti (senza distinzione tra maiuscole e minuscole):
'base64'
Stringa di base 64.
'esadecimale'
Stringa nel formato esadecimale.
'utf-8'
Il file binario di input viene decodificato nella stringa UTF-8.
numericFormat
può contenere gli elementi seguenti (senza distinzione tra maiuscole e minuscole):
0
oppure9
Specifica una cifra prevista compresa tra 0 e 9. Una sequenza di cifre con valori compresi tra 0 e 9 nella stringa di formato corrisponde a una sequenza di cifre nel valore di input. In questo modo viene generata una stringa di risultato della stessa lunghezza della sequenza corrispondente della stringa di formato. La stringa di risultato viene riempita a sinistra con zeri se la sequenza 0/9 comprende più cifre rispetto alla parte corrispondente del valore decimale, inizia con 0 e si trova prima del separatore decimale. In caso contrario, viene riempito con spazi.
.
oppureD
Specifica la posizione del separatore decimale (facoltativo, consentito una sola volta).
,
oppureG
Specifica la posizione del separatore di raggruppamento (migliaia) (,). Deve essere presente un separatore da 0 o 9 a sinistra e a destra di ogni separatore di raggruppamento.
$
Specifica la posizione del segno di valuta $. Questo carattere può essere specificato una sola volta.
S
oppureMI
Specifica la posizione di un segno '-' o '+' (facoltativo, consentito una sola volta all'inizio o alla fine della stringa di formato). Si noti che
S
stampa+
per i valori positivi maMI
stampa uno spazio.PR
Consentito solo alla fine della stringa di formato; specifica che la stringa di risultato verrà racchiusa tra parentesi angolari se il valore di input è negativo. ('<1>').
Se l'integrale o la parte decimale in numExpr
richiede più cifre rispetto alla parte corrispondente consentita in fmt
, la funzione restituisce entrambe le parti in fmt
con 0
e 9
sostituite da #
( ad esempio '$###.##'
).
Se fmt
Databricks SQL non è valido, restituisce un errore.
Questa funzione è un alias per to_varchar.
Esempi
> 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.