Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Restituisce expr convertito in STRING utilizzando la formattazione fmt.
In Databricks Runtime 14.0 e versioni precedenti, to_char supporta expr dei tipi numerici.
In Databricks SQL e Databricks Runtime 14.1 e versioni successive to_char supporta expr anche i tipi DATE, TIMESTAMPe 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: un'espressione di tipo numerico, data e ora,STRINGoBINARY. -
numericFormat: un valoreSTRINGletterale, che specifica l'output formattato per un tipoexprnumerico. -
datetimeFormat: un valore letteraleSTRING, che specifica l'output formattato perexprdi tipo datetime. -
stringFormat: un valore letteraleSTRING, che specifica l'output formattato perexprdi tipoBINARY.
Restituzioni
Oggetto STRING che rappresenta il risultato dell'operazione di formattazione.
datetmeFormat può contenere gli schemi specificati nei schemi 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):
0oppure9Specifica 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.
.oppureDSpecifica la posizione del separatore decimale (facoltativo, consentito una sola volta).
,oppureGSpecifica 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.
SoppureMISpecifica la posizione di un segno '-' o '+' (facoltativo, consentito una sola volta all'inizio o alla fine della stringa di formato). Si noti che
Sstampa+per i valori positivi, maMIstampa uno spazio.PRConsentito 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.