Aracılığıyla paylaş


parse_timestamp fonksiyon

Şunun için geçerlidir:evet olarak işaretlendi Databricks Runtime 18.1 ve üzerini denetleyin

Bir dize ise expr , verilen biçimler listesindeki ilk eşleşen desene göre bunu ayrıştırır TIMESTAMP . Biçimlerden biri veya daha fazlası önceden tanımlanmış bir biçim listesine başvurabilir. Sayısal bir türse expr , unix zaman damgası olarak ayrıştırılır.

Sözdizimi

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

Argümanlar

  • expr: bir içine ayrıştırmak için bir TIMESTAMPdize veya sayısal değer. Kabul edilen türler şunlardır:
    • TINYINT, SMALLINT, INT, BIGINT
    • FLOAT, DOUBLE
    • DECIMAL (en fazla 18 duyarlık)
    • STRING
  • desen: İsteğe bağlı bir zaman damgası desenleri listesi veya veya #rfc3339gibi #iso8601 önceden tanımlanmış bir listeye başvuru. Zaman damgası desenleri sabit bir dize olmalıdır. Herhangi bir desen belirtilmezse, belirtilmesiyle #extendedeşdeğerdir.

İadeler

TIMESTAMP Ayrıştırılmış expröğesini temsil eden bir .

expr bir dizeyse, ilk eşleşen desene göre ayrıştırılır. Desenlerden hiçbiri eşleşmezse işlev bir hata oluşturur.

expr sayısalsa, her zaman Unix zaman damgası olarak ayrıştırılır.

Eğer exprNULL ise, işlev NULL döndürür.

Ayrıştırma başarısız olduğunda hata yerine döndürmek NULL için işlevini kullanıntry_parse_timestamp.

Notlar

  • Desen listesi değerler içeriyorsa NULL , bunlar yoksayılır. Sağlanan tüm desenler ise NULL, sonuç olur NULL.
  • Zaman damgası saat dilimi bilgisi içermeyen bir desenle eşleşiyorsa, oturum saat diliminde ayrıştırılır.

Hata koşulları

Örnekler

-- 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

Desen başvurusu

parse_timestampve try_parse_timestamp işlevi, tarafından to_timestampkullanılan standart tarih saat deseninden bazı şekillerde farklı olan bir desen kümesi kullanır. Aşağıdaki tabloda tüm desen simgeleri ve her birinin desteklenip desteklenmediği listelenmektedir:

Symbol Anlamı Örnekler Support
U Unix Aşağıdaki nota bakın Destekleniyor
G çağ MS; Anno Domini Desteklenmiyor
y yıl 2020; 20 Destekleniyor
D yılın günü 189 Desteklenmiyor
M/L yılın ayı 7; 07; Tem; Temmuz Destekleniyor
d ayın günü 28 Destekleniyor
Q/q yılın çeyreği 3; 03; Ç3; 3. çeyrek Desteklenmiyor
E haftanın günü Sal; Salı Destekleniyor
F ay içinde haftanın günü hizalanmış 3 Desteklenmiyor
öö günün am-pm zamanı Başbakan / ÖS Destekleniyor
h am-pm saati (1-12) 12 Destekleniyor
K akşam saati (0-11) 0 Destekleniyor
k günün saati (1-24) 1 Desteklenmiyor
H günün saati (0-23) 0 Destekleniyor
m saat dakikası 30 Destekleniyor
s dakika saniyesi 55 Destekleniyor
S saniyenin kesirleri olarak 978 Destekleniyor
V saat dilimi kimliği Amerika/Los_Angeles; Z; -08:30 Destekleniyor
z saat dilimi adı Pasifik Standart Saati; PST Destekleniyor
O yerelleştirilmiş saat dilimi farkı GMT+8; GMT+08:00; UTC-08:00 Destekleniyor
X sıfır için bölge uzaklığı 'Z' Z; -08; -0830; -08:30 Desteklenen (1-3 basamak)
x zaman dilimi farkı +0000; -08; -0830; -08:30 Desteklenen (1-3 basamak)
Z zaman dilimi farkı +0000; -0800; -08:00 Destekleniyor
# desen listesi #common, #iso8601 Destekleniyor

Uyarı

Unix deseni (U): Desen #unix listesi Unix dönem zaman damgalarını ayrıştırır. 1971-08-03 ile 3554-06-09 arasındaki tarihler için uygulama Unix zaman damgalarını saniye, mikrosaniye ve nanosaniye cinsinden ayırabilir ve ayrıştırabilir. Bu aralığın dışındaki tarihler yanlış ayrıştırılamaz veya ayrıştırılamaz. Negatif tamsayılar desteklenmez. Kesirli değerler en fazla 9 ondalık basamakta desteklenir ve sonuç türünün duyarlığıyla eşleşecek şekilde kesilir.

Yerel ayar: Desen yer tutucuları yerel ayara duyarlı değildir. Ay ve gün adları yalnızca İngilizce olarak desteklenir.

Desen listeleri

Önceden tanımlanmış bir desen listesini ada göre geçirebilirsiniz (örneğin#extended, , #iso8601#unix). Aşağıdaki desen listeleri kullanılabilir:

  • common — Standart tarafından tanımlanmayan yaygın olarak bulunan desenler
  • iso8601
  • rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
  • unix — Yalnızca Unix dönem zaman damgaları
  • extended — Yukarıdaki listelerin tümünün birleşimi; ayrıca hiçbir desen belirtilmediğinde varsayılan değerdir
  • extended-dmy — DMY yerel ayarına özgü biçimlerle genişletilmiş
  • extended-mdy — MDY yerel ayarına özgü biçimlerle genişletilmiş