Bagikan melalui


fungsi try_parse_timestamp

Berlaku untuk:check ditandai ya Databricks Runtime 18.1 ke atas

Jika expr adalah string, uraikan ke dalam sesuai dengan pola pencocokan pertama dalam daftar format yang diberikan, atau mengembalikan NULL jika tidak ada pola yang TIMESTAMP cocok. Jika expr adalah jenis numerik, uraikan sebagai tanda waktu Unix. Pengembalian yang tidak valid atau tidak cocok exprNULL alih-alih meningkatkan kesalahan.

Sintaksis

try_parse_timestamp(expr [, { pattern [...] } ])

Argumen

  • expr: String atau nilai numerik untuk diurai TIMESTAMPke dalam . Jenis yang diterima adalah:
    • TINYINT,SMALLINT,INT,BIGINT
    • FLOAT, DOUBLE
    • DECIMAL (hingga 18 presisi)
    • STRING
  • pola: Daftar pola tanda waktu opsional atau referensi ke daftar yang telah ditentukan sebelumnya seperti #iso8601 atau #rfc3339. Pola tanda waktu harus berupa string konstanta. Jika tidak ada pola yang ditentukan, pola tersebut setara dengan menentukan #extended. Untuk referensi simbol pola dan daftar daftar pola yang telah ditentukan sebelumnya, lihat Referensi pola dalam parse_timestamp fungsi.

Pengembalian Barang

A TIMESTAMP, atau NULL jika expr tidak dapat diurai.

expr Jika adalah string dan tidak ada pola yang cocok, fungsi akan mengembalikan NULL.

expr Jika numerik dan tidak dapat ditafsirkan sebagai tanda waktu Unix yang valid (misalnya luapan), fungsi mengembalikan NULL.

Jika parameter format salah bentuk (pola tidak valid atau daftar pola yang tidak diketahui), fungsi masih menimbulkan kesalahan; hanya mengurai kegagalan pada pengembalian exprNULLnilai .

Jika expr adalah NULL, fungsi mengembalikan NULL.

Catatan

  • Jika daftar pola berisi NULL nilai, mereka diabaikan. Jika semua pola yang disediakan adalah NULL, hasilnya adalah NULL.
  • Jika tanda waktu cocok dengan pola yang tidak berisi informasi zona waktu, tanda waktu diurai dalam zona waktu sesi.

Kondisi kesalahan

Examples

-- Parse timestamp according to default pattern list
> SELECT try_parse_timestamp('2024-12-09T19:30:01');
 2024-12-09 19:30:01.000

-- Invalid date returns NULL
> SELECT try_parse_timestamp('2016-12-32');
 NULL

-- Bad input returns NULL instead of error
> SELECT try_parse_timestamp('bad input');
 NULL

-- Invalid pattern still raises an error (does not return NULL)
> SELECT try_parse_timestamp('2023', 'QQQQ');
 Error: INVALID_PARAMETER_VALUE.PATTERN

-- Extend the default pattern list with custom patterns
> SELECT try_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