- Catégories :
TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*¶
Une version spéciale de TO_TIMESTAMP / TO_TIMESTAMP_* qui effectue la même opération (c’est-à-dire convertit une expression d’entrée en horodatage), mais avec une prise en charge du traitement des erreurs (c’est-à-dire que si la conversion ne peut pas être effectuée, elle retourne une valeur NULL au lieu de produire une erreur).
Pour plus d’informations, voir Fonctions de conversion de traitement des erreurs.
Note
TRY_TO_TIMESTAMP mappe vers l’une des autres fonctions d’horodatage, en fonction du paramètre de session TIMESTAMP_TYPE_MAPPING. Le paramètre par défaut est TIMESTAMP_NTZ de sorte que TRY_TO_TIMESTAMP est mappé sur TRY_TO_TIMESTAMP_NTZ par défaut.
- Voir aussi :
Syntaxe¶
timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Où :
timestampFunction ::= TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Arguments¶
Obligatoire :
Une des options :
string_expr
Chaîne pouvant être évaluée sur un TIMESTAMP (TIMESTAMP_NTZ, TIMESTAMP_LTZ ou TIMESTAMP_TZ).
'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.
Facultatif :
format
Spécificateur de format pour
string_expr
ou AUTO. 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 TIMESTAMP_INPUT_FORMAT (AUTO par défaut).
Renvoie¶
Le type de données de la valeur renvoyée est l’un des types de données TIMESTAMP. Par défaut, le type de données est TIMESTAMP_NTZ. Vous pouvez changer cela en définissant le paramètre de session TIMESTAMP_TYPE_MAPPING.
Notes sur l’utilisation¶
Pour les horodatages avec des fuseaux horaires, la définition du paramètre TIMEZONE affecte la valeur de renvoi. L’horodatage renvoyé se situe dans le fuseau horaire de la session.
Le format d’affichage des horodatages dans la sortie est déterminé par le format de sortie d’horodatage qui correspond à la fonction (TIMESTAMP_OUTPUT_FORMAT, TIMESTAMP_LTZ_OUTPUT_FORMAT, TIMESTAMP_NTZ_OUTPUT_FORMAT ou TIMESTAMP_TZ_OUTPUT_FORMAT).
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.
Lorsque vous utilisez la fonction TO_TIMESTAMP_NTZ ou TRY_TO_TIMESTAMP_NTZ pour convertir un horodatage avec des informations de fuseau horaire, les informations de fuseau horaire sont perdues. Si l’horodatage est ensuite reconverti en horodatage avec des informations de fuseau horaire (en utilisant la fonction TO_TIMESTAMP_TZ, par exemple), les informations de fuseau horaire ne peuvent pas être récupérées.
Exemples¶
Cet exemple utilise TRY_TO_TIMESTAMP :
SELECT TRY_TO_TIMESTAMP('2024-01-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid');
+-----------------------------------------+-----------------------------+
| TRY_TO_TIMESTAMP('2024-01-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') |
|-----------------------------------------+-----------------------------|
| 2024-01-15 12:30:00.000 | NULL |
+-----------------------------------------+-----------------------------+
Voir TO_TIMESTAMP / TO_TIMESTAMP_* pour des exemples de conversion d’une expression d’entrée en horodatage.