parse_timestamp függvény

A következőre vonatkozik: yes Databricks Runtime 18.1 vagy újabb jelöléssel

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 #iso8601 vagy #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 az NULL, 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

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