Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
Gäller för:
Databricks Runtime 18.1 och senare
Om expr är en sträng parsar du den i ett TIMESTAMP enligt det första matchande mönstret i den angivna listan med format. Ett eller flera av formaten kan referera till en fördefinierad lista med format. Om expr är en numerisk typ parsar du den som en Unix-tidsstämpel.
Syntax
parse_timestamp(expr [, { pattern [...] } ])
Arguments
-
expr: En sträng eller ett numeriskt värde som ska parsas till en
TIMESTAMP. Godkända typer är:-
TINYINT,SMALLINT, ,INTBIGINT -
FLOAT,DOUBLE -
DECIMAL(upp till 18 precision) STRING
-
-
mönster: En valfri lista med tidsstämpelmönster eller en referens till en fördefinierad lista som
#iso8601eller#rfc3339. Tidsstämpelmönster måste vara en konstant sträng. Om inget mönster anges motsvarar det att#extendedange .
Retur
En TIMESTAMP som representerar den tolkade expr.
expr Om är en sträng parsas den enligt det första matchande mönstret. Om inget av mönstren matchar genererar funktionen ett fel.
Om är expr numeriskt parsas det alltid som en Unix-tidsstämpel.
Om expr är NULLreturnerar NULLfunktionen .
Om du vill returnera NULL i stället för ett fel när parsningen misslyckas använder du try_parse_timestamp funktionen.
Notes
- Om mönsterlistan innehåller
NULLvärden ignoreras de. Om alla angivna mönster ärNULLärNULLresultatet . - Om tidsstämpeln matchar ett mönster som inte innehåller någon tidszonsinformation parsas den i sessionens tidszon.
Feltillstånd
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. MÖNSTER
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Exempel
-- 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
Mönsterreferens
parse_timestamp och try_parse_timestamp funktionen använder en mönsteruppsättning som på vissa sätt skiljer sig från det standard datetime-mönster som används av to_timestamp. I följande tabell visas alla mönstersymboler och om var och en stöds:
| Symbol | Innebörd | Exempel | Support |
|---|---|---|---|
| U | Unix | Se kommentaren nedan | Stöds |
| G | era | e.Kr; Efter Kristus | Stöds ej |
| y | år | 2020; 20 | Stöds |
| D | dag på året | 189 | Stöds ej |
| M/L | månad på året | 7; 07; Jul; Juli | Stöds |
| d | månadens dag | 28 | Stöds |
| Q/q | kvartal på året | 3; 03; Q3; Tredje kvartalet | Stöds ej |
| E | veckodag | Tis; Tisdag | Stöds |
| F | justerad veckodag i månaden | 3 | Stöds ej |
| a | förmiddag-eftermiddag-dag | PM | Stöds |
| h | klocktimme av fm-em (1-12) | 12 | Stöds |
| K | timme 'am-pm' (0-11) | 0 | Stöds |
| k | klocktimme på dygn (1–24) | 1 | Stöds ej |
| H | dagens timme (0–23) | 0 | Stöds |
| m | minut av timmen | 30 | Stöds |
| s | sekund i minuten | 55 | Stöds |
| S | bråkdel av sekunden | 978 | Stöds |
| V | tidszons-ID | Amerika/Los_Angeles; Z; -08:30 | Stöds |
| z | tidszonsnamn | Stillahavstiden; PST (UTC-8) | Stöds |
| O | lokaliserad zonförskjutning | GMT+8; GMT+08:00; UTC-08:00 | Stöds |
| X | tidszonsförskjutning "Z" för noll | Z; -08; -0830; -08:30 | Stöds (1–3 siffror) |
| x | zonförskjutning | +0000; -08; -0830; -08:30 | Stöds (1–3 siffror) |
| Z | zonförskjutning | +0000; -0800; -08:00 | Stöds |
| # | mönsterlista | #common, #iso8601 | Stöds |
Anmärkning
Unix-mönster (U): Mönsterlistan #unix parsar Tidsstämplar för Unix-epok. För datum mellan 1971-08-03 och 3554-06-09 kan implementeringen skilja och parsa Unix-tidsstämplar i sekunder, mikrosekunder och nanosekunder. Datum utanför intervallet kan misslyckas med att parsa eller parsa felaktigt. Negativa heltal stöds inte. Bråkvärden stöds upp till 9 decimaler och trunkeras för att matcha resultattypens precision.
Locale: Platshållare för mönster är inte språkmedvetna. Namn på månad och dag stöds endast på engelska.
Mönsterlistor
Du kan skicka en fördefinierad mönsterlista efter namn (till exempel #extended, #iso8601, #unix). Följande mönsterlistor är tillgängliga:
- common – Vanliga mönster som inte definieras av en standard
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix – Endast Tidsstämplar för Unix-epok
- extended – Union of all of the above lists; även standardvärdet när inget mönster har angetts
- extended-dmy – Utökad med DMY-språkspecifika format
- extended-mdy – Utökad med MDY-språkspecifika format