Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks Runtime 18.1 en hoger
Als expr dit een tekenreeks is, parseert u deze in een TIMESTAMP op basis van het eerste overeenkomende patroon in de opgegeven lijst met indelingen. Een of meer indelingen kunnen verwijzen naar een vooraf gedefinieerde lijst met indelingen. Als expr dit een numeriek type is, parseert u het als een Unix-tijdstempel.
Syntaxis
parse_timestamp(expr [, { pattern [...] } ])
Argumenten
-
expr: een tekenreeks of numerieke waarde die moet worden geparseerd in een
TIMESTAMP. Geaccepteerde typen zijn:-
TINYINT,SMALLINT,INT,BIGINT -
FLOAT,DOUBLE -
DECIMAL(tot 18 precisie) STRING
-
-
patroon: Een optionele lijst met tijdstempelpatronen of een verwijzing naar een vooraf gedefinieerde lijst, zoals
#iso8601of#rfc3339. De tijdstempelpatronen moeten een constante tekenreeks zijn. Als er geen patroon is opgegeven, is dit gelijk aan het opgeven#extended.
Retouren
Een TIMESTAMP die de geparseerde exprvertegenwoordigt.
Als de expr tekenreeks een tekenreeks is, wordt deze geparseerd volgens het eerste overeenkomende patroon. Als geen van de patronen overeenkomt, genereert de functie een fout.
Als de expr waarde numeriek is, wordt deze altijd geparseerd als een Unix-tijdstempel.
Als exprNULL is, retourneert de functie NULL.
Als u wilt terugkeren NULL in plaats van een fout wanneer het parseren mislukt, gebruikt u try_parse_timestamp de functie.
Aantekeningen
- Als de patroonlijst waarden bevat
NULL, worden ze genegeerd. Als alle opgegeven patronen zijnNULL, isNULLhet resultaat . - Als de tijdstempel overeenkomt met een patroon zonder tijdzonegegevens, wordt deze geparseerd in de sessietijdzone.
Foutvoorwaarden
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. PATROON
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Examples
-- 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
Patroonreferentie
parse_timestamp en try_parse_timestamp functie maakt gebruik van een patroonset die op sommige manieren verschilt van het standaard datum/tijd-patroon dat wordt gebruikt door to_timestamp. De volgende tabel bevat alle patroonsymbolen en of elk patroon wordt ondersteund:
| Symbol | Meaning | Examples | Support |
|---|---|---|---|
| U | Unix | Zie de opmerking hieronder | Ondersteund |
| G | tijdperk | AD; Na Christus | Niet ondersteund |
| y | jaar | 2020; 20 | Ondersteund |
| D | dag van het jaar | 189 | Niet ondersteund |
| M/L | maand van het jaar | 7; 07; Jul; Juli | Ondersteund |
| d | dag van de maand | 28 | Ondersteund |
| Q/q | kwartaal van het jaar | 3; 03; Q3; 3e kwartaal | Niet ondersteund |
| E | dag van de week | Di; Dinsdag | Ondersteund |
| F | uitgelijnde dag van de week in maand | 3 | Niet ondersteund |
| a | voormiddag-namiddag | namiddag | Ondersteund |
| h | uur-op-de-klok-van-am-pm (1-12) | 12 | Ondersteund |
| K | uur van de ochtend/avond (0-11) | 0 | Ondersteund |
| k | uur-van-de-dag (1-24) | 1 | Niet ondersteund |
| H | uur van dag (0-23) | 0 | Ondersteund |
| m | minuut van het uur | 30 | Ondersteund |
| s | seconde van minuut | 55 | Ondersteund |
| S | breuk van seconde | 978 | Ondersteund |
| V | tijdzone-id | Amerika/Los_Angeles; Z; -08:30 | Ondersteund |
| z | tijdzonenaam | Pacific Standaardtijd; PST | Ondersteund |
| O | gelokaliseerde zone-offset | GMT+8; GMT+08:00; UTC-08:00 | Ondersteund |
| X | zone-offset 'Z' voor nul | Z; -08; -0830; -08:30 | Ondersteund (1-3 cijfers) |
| x | tijdszoneverschuiving | +0000; -08; -0830; -08:30 | Ondersteund (1-3 cijfers) |
| Z | tijdszoneverschuiving | +0000; -0800; -08:00 | Ondersteund |
| # | patroonlijst | #common, #iso8601 | Ondersteund |
Opmerking
Unix-patroon (U): De #unix patroonlijst parseert unix-tijdstempels. Voor datums tussen 1971-08-03 en 3554-06-09 kan de implementatie Unix-tijdstempels in seconden, microseconden en nanoseconden niet eenduidig en parseren. Datums buiten dat bereik kunnen niet onjuist worden geparseerd of geparseerd. Negatieve gehele getallen worden niet ondersteund. Breukwaarden worden ondersteund tot 9 decimalen en worden afgekapt zodat deze overeenkomen met de precisie van het resultaattype.
Locale: Tijdelijke aanduidingen voor patronen zijn niet landinstellingsbewust. Namen van maanden en dagen worden alleen in het Engels ondersteund.
Patroonlijsten
U kunt een vooraf gedefinieerde patroonlijst doorgeven op naam (bijvoorbeeld #extended, #iso8601#unix). De volgende patroonlijsten zijn beschikbaar:
- algemeen — Veelgebruikte patronen die niet zijn gedefinieerd door een standaard
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix - Alleen tijdstempels voor Unix-epoch
- uitgebreid — Unie van alle bovenstaande lijsten; ook de standaardinstelling wanneer er geen patroon is opgegeven
- extended-dmy — Uitgebreid met DMY-landinstellingen-specifieke indelingen
- extended-mdy — Uitgebreid met MDY-landinstellingenspecifieke indelingen