Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks Runtime 18.1 a novější
Pokud expr je řetězec, parsuje ho na TIMESTAMP základě prvního odpovídajícího vzoru v daném seznamu formátů. Jeden nebo více formátů může odkazovat na předdefinovaný seznam formátů. Pokud expr je číselný typ, parsuje ho jako časové razítko unixu.
Syntaxe
parse_timestamp(expr [, { pattern [...] } ])
Argumenty
-
výraz: Řetězec nebo číselná hodnota, která se má parsovat do .
TIMESTAMPMezi akceptované typy patří:-
TINYINT,SMALLINT, ,INTBIGINT -
FLOAT,DOUBLE -
DECIMAL(až 18 přesnosti) STRING
-
-
vzor: Volitelný seznam vzorů časového razítka nebo odkaz na předdefinovaný seznam, například
#iso8601nebo#rfc3339. Vzory časového razítka musí být konstantní řetězec. Pokud není zadán žádný vzor, je ekvivalentní k určení#extended.
Návraty
A TIMESTAMP představující parsovaný expr.
expr Pokud je řetězec, parsuje se podle prvního shodného vzoru. Pokud se žádný ze vzorů neshoduje, funkce vyvolá chybu.
expr Pokud je číslo, je vždy analyzováno jako časové razítko unixu.
Pokud expr je NULL, vrátí funkce NULL.
Pokud se chcete vrátit NULL místo chyby při selhání analýzy, použijte try_parse_timestamp funkci.
Poznámky
- Pokud seznam vzorů obsahuje
NULLhodnoty, budou ignorovány. Pokud jsouNULLvšechny zadané vzory , výsledek jeNULL. - Pokud časové razítko odpovídá vzoru obsahujícímu žádné informace o časovém pásmu, analyzuje se v časovém pásmu relace.
Stavy chyb
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. VZOR
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Příklady
-- 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
Referenční dokumentace k vzoru
parse_timestamp a try_parse_timestamp funkce používají sadu vzorů, která se liší některými způsoby od standardního vzoru data a času používaného to_timestamp. Následující tabulka uvádí všechny symboly vzorů a to, jestli jsou podporované:
| Symbol | Význam | Příklady | Podpora |
|---|---|---|---|
| U | Unix | Viz poznámka níže | Podporováno |
| G | éra | LP; Léta Páně | Nepodporováno |
| y | rok | 2020; 20 | Podporováno |
| D | den v roce | 189 | Nepodporováno |
| M/L | měsíc v roce | 7; 07; Červenec; Červenec | Podporováno |
| d | den měsíce | 28 | Podporováno |
| Q/q | čtvrtletí roku | 3; 03; 3. čtvrtletí; 3. čtvrtletí | Nepodporováno |
| E | den v týdnu | Út; Úterý | Podporováno |
| F | zarovnaný den týdne v měsíci | 3 | Nepodporováno |
| a | režim dne AM/PM | Projektový manažer | Podporováno |
| h | hodina dopoledne nebo odpoledne (1-12) | 12 | Podporováno |
| K | hodina odpoledne (0–11) | 0 | Podporováno |
| k | hodina dne (1–24) | 1 | Nepodporováno |
| H | hodina dne (0–23) | 0 | Podporováno |
| m | minuta v hodině | 30 | Podporováno |
| s | sekunda za minutu | 55 | Podporováno |
| S | zlomek sekundy | 978 | Podporováno |
| V | ID časového pásma | Amerika/Los_Angeles; Z; -08:30 | Podporováno |
| z | název časového pásma | Tichomořský běžný čas; PST | Podporováno |
| O | lokalizované odsazení časového pásma | GMT+8; GMT+08:00; UTC-08:00 | Podporováno |
| X | odsazení zóny 'Z' pro nulu | Z; -08; -0830; -08:30 | Podporováno (1 až 3 číslice) |
| x | časový posun zóny | +0000; -08; -0830; -08:30 | Podporováno (1 až 3 číslice) |
| Z | časový posun zóny | +0000; -0800; -08:00 | Podporováno |
| # | seznam vzorů | #common, #iso8601 | Podporováno |
Poznámka:
Vzor unixu (U): Seznam #unix vzorů analyzuje časové razítka unixové epochy. V případě kalendářních dat mezi 1971-08-03 a 3554-06-09 může implementace v sekundách, mikrosekundách a nanosekundách disambiguate a parsovat časová razítka Unixu. Data mimo tento rozsah se nemusí podařit analyzovat nebo analyzovat nesprávně. Záporná celá čísla nejsou podporována. Desetinné hodnoty jsou podporovány až 9 desetinných míst a jsou zkráceny tak, aby odpovídaly přesnosti typu výsledku.
Národní prostředí: Zástupné symboly vzorů nejsou s podporou národního prostředí. Názvy měsíců a dnů jsou podporovány pouze v angličtině.
Seznamy vzorů
Předdefinovaný seznam vzorů můžete předat podle názvu (například #extended, #iso8601). #unix K dispozici jsou následující seznamy vzorů:
- běžné – běžně zjištěné vzory, které nejsou definovány standardem
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc8222, rfc850, rfc9110, rfc9557
- unix – pouze časové razítka unixové epochy
- rozšířené – Unie všech výše uvedených seznamů; také výchozí, pokud není zadán žádný vzor
- extended-dmy — rozšířeno s formáty specifické pro národní prostředí DMY
- extended-mdy – rozšířené s formáty specifické pro národní prostředí MDY