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.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime
İsteğe bağlı biçimlendirme kullanarak tarihe dönüştürmeyi döndürür expr .
Söz dizimi
to_date(expr [, fmt] )
Bağımsız değişkenler
-
expr: Tarihi temsil eden string ifadesi. - fmt: İsteğe bağlı bir BIÇIM STRING ifadesi.
Döndürülenler
BIR TARIH.
Sağlanırsafmt, Datetime desenleriyle uyumlu olmalıdır.
Sağlanmazsa fmt işlevi için cast(expr AS DATE)bir eş anlamlıdır.
fmt hatalı biçimlendirilmişse veya uygulaması iyi biçimlendirilmiş bir tarihle sonuçlanmıyorsa, Azure Databricks bir hata oluşturur.
Hatalı biçimlendirilmiş bir expr hata yerine döndürmek NULL için kullanın try_cast(expr AS DATE) veya Databricks Runtime'da spark.sql.ansi.enabled değerini olarak falseayarlayın.
Yaygın hata nedenleri ve çözümleri
to_date şu durumlarda hataya neden olur:
-
Giriş dizesi beklenen biçimle eşleşmiyor: Belirtilmediğinde
fmtgirişin veyayyyy-MM-ddyyyy-MM-dd HH:mm:ssbiçiminde olması gerekir. Verileriniz veyaMM-dd-yyyygibidd/MM/yyyyfarklı bir biçim kullanıyorsa eşleşenfmtbağımsız değişkeni belirtin. Desteklenen tüm desen harfleri için bkz. Tarih saat desenleri . -
Giriş dizesi geçersiz tarih değerleri içeriyor: Örneğin, ay
13, gün32veya basamakların beklendiği sayısal olmayan karakterler. - Biçim dizesi desteklenmeyen desen harfleri kullanıyor: Desteklenen simgeler ve biçimlendirme kuralları için bkz. Tarih saat desenleri .
Hata koşulları
-
CAST_INVALID_INPUT: Hayır
fmtsağlandığında ve giriş dizesi tarih olarak ayrıştırılamadığında oluşturulur. -
CANNOT_PARSE_TIMESTAMP: Sağlandığında
fmtyükseltilir, ancak giriş dizesi verilen biçim düzeniyle eşleşmiyor.
Not
Databricks Runtime'da spark.sql.ansi.enabled ise falseişlev, hatalı biçimlendirilmiş tarihler için hata yerine döndürür NULL .
Örnekler
-- Parsing with default format (yyyy-MM-dd)
> SELECT to_date('2009-07-30 04:17:52');
2009-07-30
-- Parsing with an explicit format
> SELECT to_date('2016-12-31', 'yyyy-MM-dd');
2016-12-31
-- Parsing a non-default date format
> SELECT to_date('31/12/2016', 'dd/MM/yyyy');
2016-12-31
-- Error: input is not a valid date string
> SELECT to_date('not-a-date');
Error: CAST_INVALID_INPUT
-- Error: input format doesn't match the default yyyy-MM-dd format
> SELECT to_date('31/12/2016');
Error: CAST_INVALID_INPUT
-- Fix: supply a fmt that matches the input format
> SELECT to_date('31/12/2016', 'dd/MM/yyyy');
2016-12-31
-- Use try_cast to return NULL instead of an error for invalid input
> SELECT try_cast('not-a-date' AS DATE);
NULL