Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik: yes Databricks Runtime 18.1 vagy újabb ![]()
Ha expr sztring, az adott formátumok listájában szereplő első egyező minta alapján elemzi TIMESTAMP azt. Egy vagy több formátum hivatkozhat a formátumok előre definiált listájára. Ha expr numerikus típus, akkor Unix-időbélyegként elemzi.
Szemantika
parse_timestamp(expr [, { pattern [...] } ])
Arguments
-
expr: Egy sztring vagy numerikus érték, amely
TIMESTAMPegy . Az elfogadott típusok a következők:-
TINYINT,SMALLINT,INTBIGINT -
FLOAT,DOUBLE -
DECIMAL(legfeljebb 18 pontosság) STRING
-
-
minta: Az időbélyeg-minták választható listája, vagy egy előre definiált listára mutató hivatkozás, például
#iso8601vagy#rfc3339. Az időbélyeg-mintáknak állandó sztringnek kell lenniük. Ha nincs megadva minta, az egyenértékű a beállítással#extended.
Visszatérítések
Az TIMESTAMP elemzést exprjelképező .
Ha a expr sztring az első egyező minta szerint lesz elemezve. Ha egyik minta sem egyezik, a függvény hibát jelez.
Ha a expr szám, akkor az mindig Unix-időbélyegként lesz elemezve.
Ha expr igen NULL, akkor a függvény ad vissza NULL.
Ha hiba helyett hibát szeretne visszaadni NULL , ha az elemzés sikertelen, használja try_parse_timestamp a függvényt.
Jegyzetek
- Ha a mintalista értékeket tartalmaz
NULL, a rendszer figyelmen kívül hagyja őket. Ha az összes megadott minta azNULL, akkor az eredmény .NULL - Ha az időbélyeg egyezik egy olyan mintával, amely nem tartalmaz időzónát, akkor az elemzés a munkamenet időzónájában történik.
Gyakori hibafeltételek
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. MINTA
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
Mintahivatkozás
parse_timestampés try_parse_timestamp a függvények olyan mintakészletet használnak, amely bizonyos szempontból eltér a használt standard dátum/idő mintátólto_timestamp. Az alábbi táblázat felsorolja az összes mintaszimbólumot, és hogy mindegyik támogatott-e:
| Szimbólum | Meaning | Examples | Támogatás |
|---|---|---|---|
| U | Unix | Lásd az alábbi megjegyzést | Támogatott |
| G | korszak | i.sz.; Anno Domini | Nem támogatott |
| y | év | 2020; 20 | Támogatott |
| D | év napja | 189 | Nem támogatott |
| M/L | az év hónapja | 7; 07; Júl; Július | Támogatott |
| d | hónap napja | 28 | Támogatott |
| Q/q | negyedéves | 3; 03; Q3; 3. negyedév | Nem támogatott |
| E | hét napja | Kedd; Kedd | Támogatott |
| F | a hónapban lévő hét napjának igazítása | 3 | Nem támogatott |
| a | a nap egy órájában | PM | Támogatott |
| h | 12 órás időformátum (1-12) | 12 | Támogatott |
| K | óra-de.-du. (0-11) | 0 | Támogatott |
| k | a nap órája (1-24) | 1 | Nem támogatott |
| H | napi óra (0-23) | 0 | Támogatott |
| m | perc/óra | 30 | Támogatott |
| s | perc másodperce | 55 | Támogatott |
| S | másodperc törtrésze | 978 | Támogatott |
| V | időzóna azonosítója | Amerika/Los_Angeles; Z; -08:30 | Támogatott |
| z | időzóna neve | Csendes-óceáni téli idő; PST | Támogatott |
| O | honosított zónaeltolás | GMT+8; GMT+08:00; UTC-08:00 | Támogatott |
| X | "Z" zónaeltolás nullához | Z; -08; -0830; -08:30 | Támogatott (1-3 számjegy) |
| x | zónaeltolás | +0000; -08; -0830; -08:30 | Támogatott (1-3 számjegy) |
| Z | zónaeltolás | +0000; -0800; -08:00 | Támogatott |
| # | mintalista | #common, #iso8601 | Támogatott |
Megjegyzés:
Unix-minta (U): A #unix mintalista elemzi a Unix-korszak időbélyegeit. Az 1971-08-03 és 3554-06-09 közötti dátumok esetében a megvalósítás másodpercekben, mikroszekundumokban és nanoszekundumokban egyértelműsítheti és elemezheti a Unix-időbélyegeket. Előfordulhat, hogy az adott tartományon kívüli dátumok nem elemezhetők vagy nem megfelelően elemezhetők. A negatív egész számok nem támogatottak. A törtértékek legfeljebb 9 tizedesjegyig támogatottak, és csonkoltak az eredménytípus pontosságának megfelelően.
Locale: A mintahelyőrzők nem ismerik a területi beállításokat. A hónap- és napnevek csak angol nyelven támogatottak.
Mintalisták
Egy előre definiált mintalistát név szerint is átadhat (például #extended: #iso8601, #unix). A következő mintalisták érhetők el:
- gyakori – A standard által nem definiált gyakori minták
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix – Unix epoch timestamps csak
- kiterjesztett – Az összes fenti lista uniója; akkor is az alapértelmezett érték, ha nincs megadva minta
- extended-dmy – DMY területi beállításokat tartalmazó formátumokkal bővítve
- extended-mdy – MDY területi beállításspecifikus formátumokkal bővítve