Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Menampilkan expr cast ke tanggal menggunakan pemformatan opsional.
Sintaks
to_date(expr [, fmt] )
Argumen
-
expr: Ekspresi STRING yang mewakili tanggal. - fmt: Ekspresi STRING format opsional.
Mengembalikan
TANGGAL.
Jika fmt disediakan, itu harus sesuai dengan pola Tanggalwaktu.
Jika fmt tidak disediakan, fungsi tersebut adalah sinonim untuk cast(expr AS DATE).
Jika fmt salah bentuk atau aplikasinya tidak menghasilkan tanggal yang terbentuk dengan baik, Azure Databricks menimbulkan kesalahan.
Untuk mengembalikan NULL alih-alih kesalahan saat expr salah format, gunakan try_cast(expr AS DATE) atau, di Databricks Runtime, atur spark.sql.ansi.enabled ke false.
Penyebab kesalahan umum dan resolusi
to_date menimbulkan kesalahan ketika:
-
String input tidak cocok dengan format yang diharapkan: Jika
fmttidak ditentukan, input harus dalamyyyy-MM-ddformat atauyyyy-MM-dd HH:mm:ss. Jika data Anda menggunakan format yang berbeda, sepertidd/MM/yyyyatauMM-dd-yyyy, tentukan argumen yangfmtcocok. Lihat Pola tanggalwaktu untuk semua huruf pola yang didukung. -
String input berisi nilai tanggal yang tidak valid: Misalnya, karakter bulan
13, hari32, atau non-numerik di mana digit diharapkan. - String format menggunakan huruf pola yang tidak didukung: Lihat Pola tanggalwaktu untuk simbol dan aturan pemformatan yang didukung.
Kondisi kesalahan
-
CAST_INVALID_INPUT: Dimunculkan ketika tidak
fmtada yang disediakan dan string input tidak dapat diurai sebagai tanggal. -
CANNOT_PARSE_TIMESTAMP: Dimunculkan saat
fmtdisediakan tetapi string input tidak cocok dengan pola format yang diberikan.
Catatan
Dalam Databricks Runtime, jika spark.sql.ansi.enabled adalah false, fungsi mengembalikan alih-alih NULL kesalahan untuk tanggal yang salah format.
Contoh
-- 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