Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks Runtime 18.1 et versions ultérieures
S’il expr s’agit d’une chaîne, l’analyse en fonction TIMESTAMP du premier modèle correspondant dans la liste donnée de formats. Un ou plusieurs formats peuvent référencer une liste prédéfinie de formats. S’il expr s’agit d’un type numérique, l’analyse en tant qu’horodatage Unix.
Syntaxe
parse_timestamp(expr [, { pattern [...] } ])
Arguments
-
expr : chaîne ou valeur numérique à analyser dans un
TIMESTAMP. Les types acceptés sont les suivants :-
TINYINT, ,SMALLINTINT, ,BIGINT -
FLOAT,DOUBLE -
DECIMAL(jusqu’à 18 précisions) STRING
-
-
modèle : liste facultative de modèles d’horodatage ou référence à une liste prédéfinie telle que
#iso8601ou#rfc3339. Les modèles d’horodatage doivent être une chaîne constante. Si aucun modèle n’est spécifié, il équivaut à spécifier#extended.
Retours
Représentant TIMESTAMP l’analyse expr.
Si la expr chaîne est une chaîne, elle est analysée en fonction du premier modèle correspondant. Si aucun des modèles ne correspond, la fonction génère une erreur.
Si la expr valeur est numérique, elle est toujours analysée en tant qu’horodatage Unix.
Si expr c’est NULLle cas, la fonction retourne NULL.
Pour retourner NULL au lieu d’une erreur lors de l’analyse échoue, utilisez try_parse_timestamp la fonction.
Remarques
- Si la liste de modèles contient des
NULLvaleurs, elles sont ignorées. Si tous les modèles fournis sontNULL, le résultat estNULL. - Si l’horodatage correspond à un modèle contenant aucune information de fuseau horaire, il est analysé dans le fuseau horaire de session.
Conditions de l’erreur
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. MODÈLE
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Exemples
-- Parse timestamp according to default pattern list
> SELECT parse_timestamp('2024-12-09T19:30:01');
2024-12-09 19:30:01.000
-- Parse a microsecond epoch timestamp using the unix pattern list
> SELECT parse_timestamp('1733772601000000', '#unix');
2024-12-09 19:30:01.000
-- Bad `expr` that does not match any pattern
> SELECT parse_timestamp('bad input');
Error: CANNOT_PARSE_TIMESTAMP
-- Use try_parse_timestamp to return NULL instead of error
> SELECT try_parse_timestamp('bad input');
NULL
-- Extend the default pattern list with custom patterns
> SELECT parse_timestamp(col, "#extended", "dd MMM, yyyy", "MMM d; yy") FROM VALUES ('2024-12-01'), ('02 Dec, 2024'), ('DEC 3; 24') AS t(col)
2024-12-01 00:00:00.000
2024-12-02 00:00:00.000
2024-12-03 00:00:00.000
Référence de modèle
parse_timestamp et try_parse_timestamp la fonction utilisent un jeu de modèles qui diffère de certaines façons du modèle datetime standard utilisé par to_timestamp. Le tableau suivant répertorie tous les symboles de modèle et indique si chacun d’eux est pris en charge :
| Symbol | Signification | Exemples | Support |
|---|---|---|---|
| U | Unix | Voir la remarque ci-dessous | Soutenu |
| G | Ère | Ap. J.-C. ; après Jésus-Christ | Non pris en charge |
| y | année | 2020 ; 20 | Soutenu |
| D | Jour de l’année | 189 | Non pris en charge |
| M/L | Mois de l’année | 7 ; 07 ; juil. ; juillet | Soutenu |
| d | Jour du mois | 28 | Soutenu |
| Q/q | Trimestre de l’année | 3 ; 03 ; T3 ; 3e trimestre | Non pris en charge |
| E | Jour de la semaine | Mar. ; mardi | Soutenu |
| F | Jour de la semaine aligné dans le mois | 3 | Non pris en charge |
| a | Matin ou après-midi | PM | Soutenu |
| h | Heure format 12 h (1 à 12) | 12 | Soutenu |
| K | Heure format 12 h (0 à 11) | 0 | Soutenu |
| k | Heure format 24 h (1 à 24) | 1 | Non pris en charge |
| H | Heure format 24 h (0 à 23) | 0 | Soutenu |
| m | Minute de l’heure | 30 | Soutenu |
| s | Seconde de la minute | 55 | Soutenu |
| S | Fraction de seconde | 978 | Soutenu |
| V | ID de fuseau horaire | Amérique/Los Angeles ; Z ; -08:30 | Soutenu |
| z | Nom du fuseau horaire | Pacific Standard Time ; PST | Soutenu |
| O | Décalage de zone localisée | GMT+8 ; GMT+08:00 ; UTC-08:00 | Soutenu |
| X | décalage interzone 'Z' pour zéro | Z; -08; -0830; -08:30 | Pris en charge (1 à 3 chiffres) |
| x | Décalage de zone | +0000; -08; -0830; -08:30 | Pris en charge (1 à 3 chiffres) |
| Z | Décalage de zone | +0000; -0800; -08:00 | Soutenu |
| # | liste de modèles | #common, #iso8601 | Soutenu |
Note
Modèle Unix (U) : La #unix liste de modèles analyse les horodatages d’époque Unix. Pour les dates comprises entre 1971-08-03 et 3554-06-09, l’implémentation peut lever l’ambiguïté et analyser les horodatages Unix en secondes, microsecondes et nanosecondes. Les dates en dehors de cette plage peuvent ne pas analyser ou analyser incorrectement. Les entiers négatifs ne sont pas pris en charge. Les valeurs fractionnelles sont prises en charge jusqu’à 9 décimales et sont tronquées pour correspondre à la précision du type de résultat.
Paramètres régionaux : Les espaces réservés de modèle ne prennent pas en charge les paramètres régionaux. Les noms de mois et de jour sont pris en charge uniquement en anglais.
Listes de modèles
Vous pouvez passer une liste de modèles prédéfinie par nom (par exemple#extended, , #iso8601#unix). Les listes de modèles suivantes sont disponibles :
- common — Modèles couramment trouvés non définis par une norme
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix — Horodatages d’époque Unix uniquement
- étendue — Union de toutes les listes ci-dessus ; également la valeur par défaut lorsqu’aucun modèle n’est spécifié
- extended-dmy : étendu avec des formats spécifiques aux paramètres régionaux DMY
- extended-mdy : étendu avec des formats spécifiques aux paramètres régionaux MDY