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.

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