Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
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 iseNULL, sonuç olurNULL. - Zaman damgası saat dilimi bilgisi içermeyen bir desenle eşleşiyorsa, oturum saat diliminde ayrıştırılır.
Hata koşulları
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. DESEN
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Ö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ş