- Catégories :
TRY_TO_DATE¶
Version spéciale de la fonction TO_DATE qui effectue la même opération (c’est-à-dire qui convertit une expression d’entrée en date), mais avec une prise en charge du traitement des erreurs (c’est-à-dire que si la conversion ne peut pas être effectuée, elle renvoie une valeur NULL au lieu de déclencher une erreur).
Pour plus d’informations, voir Fonctions de conversion de traitement des erreurs.
- Voir aussi :
Syntaxe¶
TRY_TO_DATE( <string_expr> [, <format> ] )
TRY_TO_DATE( '<integer>' )
Arguments¶
Obligatoire :
Une des options :
string_expr
Chaîne à partir de laquelle extraire une date. Par exemple :
'2024-01-31'
.'integer'
Expression qui est évaluée sur (correspond à) une chaîne contenant un entier. Par exemple :
'15000000'
. Selon l’ampleur de la chaîne, elle peut être interprétée comme des secondes, des millisecondes, des microsecondes ou des nanosecondes. Pour plus de détails, voir les Notes sur l’utilisation de cette fonction.
Facultatif :
format
Spécificateur de format de date pour
string_expr
ou AUTO, qui précise que Snowflake doit automatiquement détecter le format à utiliser. Pour plus d’informations, voir Formats de date et d’heure dans les fonctions de conversion.La valeur par défaut est la valeur actuelle du paramètre de session DATE_INPUT_FORMAT (
AUTO
par défaut).
Renvoie¶
Le type de données de la valeur renvoyée est DATE.
Notes sur l’utilisation¶
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
).Si le format du paramètre d’entrée est une chaîne contenant un entier :
Une fois la chaîne convertie en entier, l’entier est traité comme un nombre de secondes, millisecondes, microsecondes ou nanosecondes après le début de l’epoch Unix (1970-01-01 00:00:00.000000000 UTC).
Si l’entier est inférieur à 31536000000 (le nombre de millisecondes dans une année), alors la valeur est traitée comme un nombre de secondes.
Si la valeur est supérieure ou égale à 31536000000 et inférieure à 31536000000000, la valeur est alors traitée en millisecondes.
Si la valeur est supérieure ou égale à 31536000000000 et inférieure à 31536000000000000, la valeur est alors traitée en microsecondes.
Si la valeur est supérieure ou égale à 31536000000000000, alors la valeur est traitée comme des nanosecondes.
Si plusieurs lignes sont évaluées (par exemple, si l’entrée est le nom de colonne d’une table qui contient plus d’une ligne), chaque valeur est examinée indépendamment pour déterminer si elle représente des secondes, des millisecondes, des microsecondes ou des nanosecondes.
Exemples¶
L’exemple suivant utilise la fonction TRY_TO_DATE :
SELECT
TRY_TO_DATE('2024-05-10') AS valid_date,
TRY_TO_DATE('Invalid') AS invalid_date;
+------------+--------------+
| VALID_DATE | INVALID_DATE |
|------------+--------------|
| 2024-05-10 | NULL |
+------------+--------------+
Voir TO_DATE , DATE pour des exemples de conversion d’une expression d’entrée en date.