Fonctions de conversion

Cette famille de fonctions peut être utilisée pour convertir une expression de n’importe quel type de données Snowflake en un autre type de données.

Dans ce chapitre :

Liste de fonctions

Sous-catégorie

Fonction

Remarques

N’importe quel type de données

CAST , ::

TRY_CAST

Version de traitement des erreurs de CAST.

Types de données texte/caractère/binaires

TO_CHAR , TO_VARCHAR

TO_BINARY

TRY_TO_BINARY

Version de traitement des erreurs de TO_BINARY.

Types de données numériques

TO_DECIMAL , TO_NUMBER , TO_NUMERIC

TO_DOUBLE

TRY_TO_DECIMAL, TRY_TO_NUMBER, TRY_TO_NUMERIC

Versions de traitement des erreurs de TO_DECIMAL, TO_NUMBER, etc.

TRY_TO_DOUBLE

Version de traitement des erreurs de TO_DOUBLE.

Type de données booléennes

TO_BOOLEAN

TRY_TO_BOOLEAN

Version de traitement des erreurs de TO_BOOLEAN.

Types de données date et heure

TO_DATE , DATE

TO_TIME , TIME

TO_TIMESTAMP / TO_TIMESTAMP_*

TRY_TO_DATE

Version de traitement des erreurs de TO_DATE.

TRY_TO_TIME

Version de traitement des erreurs de TO_TIME.

TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*

Versions de traitement des erreurs de TO_TIMESTAMP, etc.

Types de données semi-structurées

TO_ARRAY

TO_OBJECT

TO_VARIANT

Types de données géospatiales

TO_GEOGRAPHY

TRY_TO_GEOGRAPHY

Version de traitement des erreurs de TO_GEOGRAPHY

ST_GEOGFROMGEOHASH

ST_GEOGPOINTFROMGEOHASH

ST_GEOGRAPHYFROMWKB

ST_GEOGRAPHYFROMWKT

TO_GEOMETRY

TRY_TO_GEOMETRY

Version de traitement des erreurs de TO_GEOMETRY

ST_GEOMETRYFROMWKB

ST_GEOMETRYFROMWKT

Fonctions de conversion de traitement des erreurs

Les fonctions de conversion avec un préfixe TRY_ sont des versions spéciales de leurs fonctions de conversion respectives. Ces fonctions retournent une valeur NULL au lieu de déclencher une erreur lorsque la conversion ne peut pas être effectuée :

Notez que ces fonctions ne prennent en charge que les expressions de chaîne (c’est-à-dire de type de données VARCHAR ou CHAR) en entrée.

Important

Ces fonctions de conversion de traitement des erreurs sont optimisées pour les situations dans lesquelles les erreurs de conversion sont relativement peu fréquentes :

  • S’il n’y a pas (ou très peu) d’erreurs, elles ne devraient avoir aucune incidence visible sur les performances.

  • S’il y a un grand nombre d’échecs de conversion, l’utilisation de ces fonctions peut entraîner un ralentissement significatif des performances. De plus, en les utilisant avec le type VARIANT, certaines opérations peuvent entraîner une diminution des performances.

Formats numériques dans les fonctions de conversion

Les fonctions TO_DECIMAL , TO_NUMBER , TO_NUMERIC et TO_DOUBLE acceptent un paramètre facultatif qui spécifie le format de la chaîne d’entrée, si l’expression d’entrée correspond à une chaîne. Pour plus d’informations sur les valeurs que ce paramètre peut avoir, voir Modèles de format SQL.

Formats de date et d’heure dans les fonctions de conversion

Les fonctions suivantes vous permettent de spécifier le format de date, d’heure ou d’horodatage attendu pour analyser ou produire une chaîne :

Vous spécifiez le format dans un argument facultatif, en utilisant les éléments insensibles à la casse suivants pour décrire le format :

Élément de format

Description

YYYY

Année à quatre chiffres.

YY

Année à deux chiffres, contrôlée par le paramètre de session TWO_DIGIT_CENTURY_START. Par exemple, lorsqu’il est défini sur 1980, les valeurs de 79 et 80 sont analysées comme 2079 et 1980 respectivement.

MM

Mois à deux chiffres (01 = janvier, et ainsi de suite).

MON

Nom complet ou abrégé du mois.

MMMM

Nom complet du mois.

DD

Jour du mois à deux chiffres (01 à 31).

DY

Jour de la semaine abrégé.

HH24

Deux chiffres pour l’heure (00 à 23). Vous ne devez pas spécifier AM / PM.

HH12

Deux chiffres pour l’heure (01 à 12). Vous pouvez spécifier AM / PM.

AM , PM

Ante meridiem (matin) (AM) / post meridiem (après-midi) (PM). À utiliser uniquement avec HH12 (pas avec HH24).

MI

Deux chiffres pour les minutes (00 à 59).

SS

Deux chiffres pour les secondes (00 à 59).

FF[0-9]

Fractions de secondes d’une précision de 0 (secondes) à 9 (nanosecondes), par exemple FF, FF0, FF3, FF9. Spécifier FF équivaut à FF9 (nanosecondes).

TZH:TZM , TZHTZM , TZH

Heure et minute du fuseau horaire, décalage par rapport à UTC. Peut être préfixé par un signe +/-.

UUUU

Année à quatre chiffres au format ISO, qui sont négatifs pour les années BCE.

Note

Notes sur l’utilisation

Tout ce qui se trouve dans le format entre guillemets doubles ou autre que les éléments ci-dessus est analysé/formaté sans être interprété.

Exemples

Convertissez une chaîne en date à l’aide d’un format d’entrée spécifié dd/mm/yyyy. Le format d’affichage des dates dans la sortie est déterminé par le paramètre de session DATE_OUTPUT_FORMAT (par défaut, YYYY-MM-DD).

SELECT TO_DATE('3/4/2024', 'dd/mm/yyyy');
Copy
+-----------------------------------+
| TO_DATE('3/4/2024', 'DD/MM/YYYY') |
|-----------------------------------|
| 2024-04-03                        |
+-----------------------------------+

Convertissez une date en chaîne et spécifiez un format de sortie de date mon dd, yyyy.

SELECT TO_VARCHAR('2024-04-05'::DATE, 'mon dd, yyyy');
Copy
+------------------------------------------------+
| TO_VARCHAR('2024-04-05'::DATE, 'MON DD, YYYY') |
|------------------------------------------------|
| Apr 05, 2024                                   |
+------------------------------------------------+

Formats binaires dans les fonctions de conversion

TO_CHAR , TO_VARCHAR et TO_BINARY acceptent un argument facultatif spécifiant le format prévu pour analyser ou produire une chaîne.

Le format peut être l’une des chaînes suivantes (insensible à la casse) :

  • HEX

  • BASE64

  • UTF-8

Pour plus d’informations sur ces formats, voir Présentation des formats binaires pris en charge.

Pour des exemples d’utilisation de ces formats, voir la section Exemples de Entrée et sortie binaires.