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 des 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/binaire

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 de date et d’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_GEOGRAPHYFROMWKB

ST_GEOGRAPHYFROMWKT

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 provoquer une erreur lorsque la conversion ne peut ê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 tant qu’entrées.

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 heure dans les fonctions de conversion

TO_CHAR , TO_VARCHAR, TO_DATE , DATE, TRY_TO_DATE, TO_TIME , TIME, TRY_TO_TIME, et toutes les variations TO_TIMESTAMP / TO_TIMESTAMP_* et TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_* acceptent un argument facultatif spécifiant le format attendu pour analyser ou produire une chaîne. Pour les dates, les heures et les horodatages, le format peut être constitué de n’importe quel texte, y compris les symboles de clés suivants (non sensibles à la casse) :

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 réglé sur 1980, les valeurs de 79 et 80 sont respectivement analysées en tant que valeurs 2079 et 1980.

MM

Mois à deux chiffres (01=janvier, etc.).

MON

Nom complet ou abrégé du mois.

MMMM

Nom complet du mois.

DD

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

DY

Jour de la semaine abrégé.

HH24

Deux chiffres pour l’heure (00 à 23) ; am/pm non autorisé.

HH12

Deux chiffres pour l’heure (01 à 12) ; am/pm autorisé.

AM , PM

Ante meridiem (am) / post meridiem (pm) ; pour une utilisation avec HH12.

MI

Deux chiffres pour la minute (00 à 59).

SS

Deux chiffres pour la seconde (00 à 59).

FF

Fractions de seconde avec une précision de 0 (secondes) à 9 (nanosecondes), par ex. FF, FF0, FF3, FF9. Spécifier FF équivaut à FF6 (microsecondes).

TZH:TZM , TZHTZM , TZH

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

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

SELECT TO_DATE('3/4/2013', 'dd/mm/yyyy');

-----------------------------------+
 to_date('3/4/2013', 'dd/mm/yyyy') |
-----------------------------------+
 2013-04-03                        |
-----------------------------------+
SELECT TO_VARCHAR('2013-04-05'::date, 'mon dd, yyyy');

------------------------------------------------+
 to_varchar('2013-04-05'::date, 'mon dd, yyyy') |
------------------------------------------------+
 Apr 05, 2013                                   |
------------------------------------------------+

Formats binaires dans les fonctions de conversion

TO_CHAR , TO_VARCHAR et TO_BINARY acceptent un argument facultatif spécifiant le format attendu 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.