Catégories :

Conversion Functions

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 :

TO_TIMESTAMP / TO_TIMESTAMP_*

Syntaxe

timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Copy

Où :

timestampFunction ::=
    TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Copy

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                        |
+-----------------------------------------+-----------------------------+
Copy