- 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 Error-handling Conversion Functions.
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
The argument should be a string that can be evaluated to a TIMESTAMP (TIMESTAMP_NTZ, TIMESTAMP_LTZ, or TIMESTAMP_TZ).
'integer'
An expression that evaluates to a string containing an integer, for example “15000000”. Depending upon the magnitude of the string, it can be interpreted as seconds, milliseconds, microseconds, or nanoseconds. For details, see the Usage Notes below.
Note
The use of quoted integers as inputs is deprecated.
Facultatif :
format
Spécificateur de format pour
string_expr
ou AUTO. Pour plus d’informations, voir Date and Time Formats in Conversion Functions.The default is the current value of the TIMESTAMP_INPUT_FORMAT session parameter (usually AUTO).
Renvoie¶
The data type of the returned value is one of the TIMESTAMP
data
types. By default, the data type is TIMESTAMP_NTZ
. You can change
this by setting the session parameter TIMESTAMP_TYPE_MAPPING.
Usage Notes¶
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.
Note
Deprecation Warning: Future versions of Snowflake might automatically interpret stringified integer values as seconds, rather than as milliseconds, microseconds, or nanoseconds. Snowflake recommends that you call TO_DATE, TO_TIME, or TO_TIMESTAMP with strings that contain integers only when those integers are intended to be interpreted as seconds.
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¶
This demonstrates usage of TRY_TO_TIMESTAMP
:
SELECT TRY_TO_TIMESTAMP('2018-09-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid'); +-----------------------------------------+-----------------------------+ | TRY_TO_TIMESTAMP('2018-09-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') | |-----------------------------------------+-----------------------------| | 2018-09-15 12:30:00.000 | NULL | +-----------------------------------------+-----------------------------+