Fonction CONVERT - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonction CONVERT

Comme la fonction CAST, la fonction CONVERT convertit un type de données en un autre type de données compatible. Par exemple, vous pouvez convertir une chaîne en date ou un type numérique en chaîne. CONVERT effectue une conversion au moment de l’exécution, ce qui signifie que la conversion ne modifie pas le type de données d’une valeur dans une table source. Elle n’est modifiée que dans le contexte de la requête.

Certains types de données nécessitent une conversion explicite en d’autres types de données à l’aide de la fonction CONVERT. D’autres types de données peuvent être convertis implicitement, dans le cadre d’une autre commande, sans utiliser CAST ou CONVERT. veuillez consulter Compatibilité et conversion de types.

Syntaxe

CONVERT ( type, expression )

Arguments

type

L’un des Types de données pris en charge.

expression

Expression qui correspond à une ou plusieurs valeurs, par exemple un nom de colonne ou un littéral. La conversion de valeurs null renvoie des valeurs null. L’expression ne peut pas contenir des chaînes vides.

Type de retour

CONVERT renvoie le type de données spécifié par l’argument type.

Note

Amazon Redshift renvoie une erreur si vous essayez d’effectuer une conversion problématique, telle que la conversion DECIMAL suivante qui perd en précision :

SELECT CONVERT(decimal(2,1), 123.456);

ou une conversion INTEGER qui entraîne un dépassement de capacité :

SELECT CONVERT(smallint, 12345678);

Exemples

Certains exemples utilisent l’exemple de base de données TICKIT. Pour plus d'informations sur la configuration d'échantillons de données, voir Charger des données.

La requête suivante utilise la fonction CONVERT pour convertir une colonne de décimales en nombres entiers.

SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;

Cet exemple convertit un nombre entier en une chaîne de caractères.

SELECT CONVERT(char(4), 2008);

Dans cet exemple, la date et l’heure actuelles sont converties en un type de données de caractères variables :

SELECT CONVERT(VARCHAR(30), GETDATE()); getdate --------- 2023-02-02 04:31:16

Cet exemple convertit la colonne saletime en heure uniquement, en supprimant les dates de chaque ligne.

SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;

Pour plus d’informations sur la conversion d’un horodatage d’un fuseau horaire vers un autre, consultez Fonction CONVERT_TIMEZONE. Pour les autres fonctions de date et d’heure, consultez Fonctions de date et d’heure.

L’exemple suivant convertit des données à caractères variables en un objet de type datetime.

SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;
Note

Vous ne pouvez pas effectuer d’opération CAST ou CONVERT sur le type de données GEOMETRY pour le remplacer par un autre type de données. Toutefois, vous pouvez fournir une représentation hexadécimale du littéral d’une chaîne au format EWKB (extended well-known binary) en tant qu’entrée des fonctions qui acceptent un argument GEOMETRY. Par exemple, la fonction ST_AsText suivante attend un type de données GEOMETRY.

SELECT ST_AsText('01010000000000000000001C400000000000002040');
st_astext ------------ POINT(7 8)

Vous pouvez également spécifier de façon explicite le type de données GEOMETRY.

SELECT ST_AsText('010100000000000000000014400000000000001840'::geometry);
st_astext ------------ POINT(5 6)