Condividi tramite


Funzione to_char

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì 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, 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: espressione di tipo numeric, datetime, STRINGo BINARY.
  • numericFormat: valore STRING letterale, che specifica l'output formattato per expr di tipo numerico.
  • datetimeFormat: valore STRING letterale, specificando l'output formattato per expr di tipo datetime.
  • stringFormat: valore STRING letterale, specificando l'output formattato per expr di tipo BINARY.

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 oppure 9

    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.

  • . oppure D

    Specifica la posizione del separatore decimale (facoltativo, consentito una sola volta).

  • , oppure G

    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 oppure MI

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