- Catégories :
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_ datatype
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_ datatype
.
L’opérateur ::
fournit une syntaxe alternative pour CAST.
- Voir aussi :
Syntaxe¶
CAST( <source_expr> AS <target_data_type> )
<source_expr> :: <target_data_type>
Arguments¶
source_expr
Expression de tout type de données pris en charge à convertir en un type de données différent.
target_data_type
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 | +----------------------------------+