Partager via


Fonction to_char

S’applique à : coche marquée oui Databricks SQL oui coché Databricks Runtime 11.3 LTS et versions ultérieures

Retourne expr casté en STRING avec la mise en forme fmt.

Dans Databricks Runtime 14.0 et les versions antérieures, to_char prend en charge expr de types numériques.

Dans Databricks SQL et Databricks Runtime 14.1 et versions ultérieures to_char, prend également en charge expr des types DATE, TIMESTAMP et BINARY

to_char est un synonyme de to_varchar.

Syntaxe

to_char(expr, { numericFormat | datetimeFormat | stringFormat } )

numericFormat
  { ' [ S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

Arguments

  • expr : une expression de type numérique, dateHeure, STRINGou BINARY.
  • numericFormat : un STRING littéral spécifiant la sortie mise en forme pour expr de type numérique.
  • datetimeFormat : un STRING littéral spécifiant la sortie mise en forme pour expr de type dateHeure.
  • stringFormat : un STRING littéral spécifiant la sortie mise en forme pour expr de type BINARY.

Retours

STRING représentant le résultat de l’opération de mise en forme.

datetmeFormat peut contenir les modèles spécifiés dans modèles DateHeure.

stringFormat peut être l’une des chaînes suivantes qui ne respectent pas la casse :

  • ‘base64’

    Une chaîne de base 64.

  • ‘hex’

    Une chaîne au format hexadécimal.

  • ‘utf-8’

    Le binaire d’entrée est décodé en chaîne UTF-8.

numericFormat peut contenir les éléments suivants (ne respectant pas la casse) :

  • 0 ou 9

    Spécifie un chiffre attendu entre 0 et 9. Une séquence de chiffres avec des valeurs comprises entre 0 et 9 dans la chaîne de format correspond à une séquence de chiffres dans la valeur d’entrée. Cela génère une chaîne de résultat de la même longueur que la séquence correspondante de la chaîne de format. La chaîne de résultat est remplie à gauche de zéros si la séquence 0/9 comprend plus de chiffres que la partie correspondante de la valeur décimale, commence par 0 et se trouve avant le signe décimal. Sinon, elle est remplie d’espaces.

  • . ou D

    Spécifie la position du signe décimal (facultatif, autorisé une seule fois).

  • , ou G

    Spécifie la position du séparateur de regroupement (milliers). Il doit y avoir un 0 ou un 9 à gauche et à droite de chaque séparateur de regroupement.

  • $

    Spécifie l’emplacement du signe monétaire $. Ce caractère ne peut être spécifié qu’une seule fois.

  • S ou MI

    Spécifie la position d’un signe « - » ou « + » (facultatif, autorisé une seule fois au début ou à la fin de la chaîne de format). Notez que S imprime + pour les valeurs positives, mais que MI imprime un espace.

  • PR

    Autorisé uniquement à la fin de la chaîne de format ; spécifie que la chaîne de résultat est incluse dans des crochets angulaires si la valeur d’entrée est négative. (‘<1>’).

Si la partie intégrale ou la partie décimale dans numExpr nécessite plus de chiffres que la partie correspondante autorisée dans fmt, la fonction retourne les deux parties dans le fmt avec 0 et 9 remplacées par # (par exemple, '$###.##').

Si fmt est malformé, Databricks SQL retourne une erreur.

Cette fonction est un alias pour to_varchar.

Exemples

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