Catégories :

Fonctions de conversion

CAST , ::

Convertit une valeur d’un type de données en un autre type de données. La sémantique de CAST est identique à celle des fonctions de conversion du TO_ type_données correspondant. Si la conversion n’est pas possible, une erreur est générée. Pour plus de détails, voir les fonctions de conversion individuelles du TO_ type_données.

L’opérateur :: fournit une syntaxe alternative pour CAST.

Voir aussi :

TRY_CAST

Syntaxe

CAST( <source_expr> AS <target_data_type> )

<source_expr> :: <target_data_type>

Arguments

expr_source

Expression de tout type de données pris en charge à convertir en un type de données différent.

type_données_cible

Le type de données vers lequel convertir l’expression. Si le type de données prend en charge des propriétés supplémentaires, telles que la précision et l’échelle (pour les nombres / décimales), les propriétés peuvent être incluses.

Notes sur l’utilisation

  • Si l’échelle n’est pas suffisante pour maintenir la valeur d’entrée, la fonction arrondit la valeur.

  • Si la précision n’est pas suffisante pour maintenir la valeur d’entrée, la fonction signale une erreur.

  • Lorsque des colonnes numériques sont explicitement converties en formulaires du type de données entier pendant un déchargement de données vers des fichiers Parquet, le type de données de ces colonnes dans les fichiers Parquet est INT. Pour plus d’informations, voir Conversion explicite de colonnes numériques en types de données Parquet.

Exemples

Convertissez une chaîne contenant un nombre en nombre décimal avec l’échelle spécifiée (2) :

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+

Convertissez la même chaîne en un nombre décimal avec l’échelle 5, en utilisant la notation :: :

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+

Convertissez un nombre en entier :

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+

Convertissez une chaîne contenant une date en un horodatage :

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+