Catégories :

Conversion Functions

TRY_TO_TIME

Une version spéciale de TO_TIME , TIME qui effectue la même opération (c’est-à-dire convertit une expression d’entrée en heure), 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.

Voir aussi :

TO_TIME , TIME

Syntaxe

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

Arguments

Obligatoire :

Une des options :

string_expr

This should be a string that can be converted to a valid time.

'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 TIME_INPUT_FORMAT session parameter (usually AUTO).

Renvoie

The data type of the returned value is TIME.

Usage Notes

  • If the format of the input parameter is a string that contains an integer:

    • 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_TIME:

SELECT TRY_TO_TIME('12:30:00'), TRY_TO_TIME('Invalid');
+-------------------------+------------------------+
| TRY_TO_TIME('12:30:00') | TRY_TO_TIME('INVALID') |
|-------------------------+------------------------|
| 12:30:00                | NULL                   |
+-------------------------+------------------------+
Copy