Fonction to_char
S’applique à : Databricks SQL 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,STRING
ouBINARY
.numericFormat
: unSTRING
littéral spécifiant la sortie mise en forme pourexpr
de type numérique.datetimeFormat
: unSTRING
littéral spécifiant la sortie mise en forme pourexpr
de type dateHeure.stringFormat
: unSTRING
littéral spécifiant la sortie mise en forme pourexpr
de typeBINARY
.
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
ou9
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.
.
ouD
Spécifie la position du signe décimal (facultatif, autorisé une seule fois).
,
ouG
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
ouMI
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 queMI
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.