Mengonversi string yang sesuai dengan format tertentu menjadi nilai tanggal standar.
Sintaksis perintah
DATETIME|DATE TO_DATE(STRING <date>[, STRING <format>])Deskripsi parameter
Parameter | Diperlukan | Deskripsi |
date | Ya | Tipe STRING, nilai tanggal yang memenuhi format. Jika nilai masukan adalah tipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, nilai tersebut secara implisit dikonversi menjadi STRING sebelum perhitungan. Fungsi ini juga mendukung string tanggal dalam format ISO 8601. |
format | Tidak | Konstanta tipe STRING. Parameter ini menentukan format tanggal. format tidak mendukung format ekstensi tanggal. Karakter lain diabaikan sebagai karakter yang tidak berguna selama penguraian. Catatan
|
Deskripsi nilai kembali
Fungsi ini mengembalikan nilai bertipe DATE atau DATETIME:
Jika fungsi dipanggil tanpa parameter format, hasilnya adalah nilai bertipe DATE dalam format
yyyy-mm-dd.Jika fungsi dipanggil dengan parameter format, hasilnya adalah nilai bertipe DATETIME dalam format
yyyy-mm-dd hh:mi:ss.Jika nilai date atau format adalah NULL, fungsi akan mengembalikan NULL.
Contoh penggunaan
Contoh data statis
-- Mengembalikan 2025-01-29
SELECT TO_DATE('2025-01-29');
-- Mengembalikan 2025-01-27 00:00:00
SELECT TO_DATE('Alibaba2025-01*27', 'Alibabayyyy-mm*dd');
-- Mengembalikan 2025-01-12 00:00:00
SELECT TO_DATE('20250112', 'yyyymmdd');
-- Mengembalikan 2025-01-28 12:12:00
SELECT TO_DATE('202501281212', 'yyyymmddhhmi');
-- Mengembalikan NULL. '2025112' tidak dapat dikonversi ke nilai tanggal standar, menyebabkan kesalahan. Seharusnya '20250112'
SELECT TO_DATE('2025112', 'yyyymmdd');
-- Mengembalikan NULL. 'Alibaba2025-12*3' tidak dapat dikonversi ke nilai tanggal standar, menyebabkan kesalahan. Seharusnya 'Alibaba2025-12*03'.
SELECT TO_DATE('Alibaba2025-12*3', 'Alibabayyyy-mm*dd');
-- Mengembalikan NULL. '2025-24-01' tidak dapat dikonversi ke nilai tanggal standar, menyebabkan kesalahan. Seharusnya '2025-01-24'.
SELECT TO_DATE('2025-24-01', 'yyyy');
-- Mengembalikan 2025-10-30 15:13:12
SELECT TO_DATE('20251030 15-13-12.345','yyyymmdd hh-mi-ss.ff3');
-- Mengembalikan NULL.
SELECT TO_DATE(NULL, 'yyyymmdd hh-mi-ss.ff3');
-- Mengembalikan NULL.
SELECT TO_DATE('20251030 15-13-12.345', NULL);
-- Mengembalikan format ISO 8601, 2025-09-24 13:39:34
SELECT TO_DATE('2025-09-24T13:39:34.119Z', 'yyyy-MM-ddThh:mi:ss.ff3Z');Contoh data tabel
Data contoh.
CREATE TABLE IF NOT EXISTS mf_date_fun_t( id INT, date1 DATE, datetime1 DATETIME, timestamp1 TIMESTAMP, date2 DATE, datetime2 DATETIME, timestamp2 TIMESTAMP, date3 STRING, date4 BIGINT); INSERT INTO mf_date_fun_t VALUES (1,DATE'2021-11-29',DATETIME'2021-11-29 00:01:00',TIMESTAMP'2021-01-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-20',123456780), (2,DATE'2021-11-28',DATETIME'2021-11-28 00:02:00',TIMESTAMP'2021-02-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-21',123456781), (3,DATE'2021-11-27',DATETIME'2021-11-27 00:03:00',TIMESTAMP'2021-03-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-22',123456782), (4,DATE'2021-11-26',DATETIME'2021-11-26 00:04:00',TIMESTAMP'2021-04-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-23',123456783), (5,DATE'2021-11-25',DATETIME'2021-11-25 00:05:00',TIMESTAMP'2021-05-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-24',123456784), (6,DATE'2021-11-24',DATETIME'2021-11-24 00:06:00',TIMESTAMP'2021-06-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-25',123456785), (7,DATE'2021-11-23',DATETIME'2021-11-23 00:07:00',TIMESTAMP'2021-07-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-26',123456786), (8,DATE'2021-11-22',DATETIME'2021-11-22 00:08:00',TIMESTAMP'2021-08-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-27',123456787), (9,DATE'2021-11-21',DATETIME'2021-11-21 00:09:00',TIMESTAMP'2021-09-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-28',123456788), (10,DATE'2021-11-20',DATETIME'2021-11-20 00:10:00',TIMESTAMP'2021-10-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-29',123456789);Mengonversi kolom
date3bertipe STRING menjadi tipe DATETIMEdate3_to_dateuntuk keluaran:SELECT date3, TO_DATE(date3, 'yyyy-mm-dd') AS date3_to_date FROM mf_date_fun_t;Hasil yang dikembalikan adalah sebagai berikut:
+------------+---------------------+ | date3 | date3_to_date | +------------+---------------------+ | 2021-11-20 | 2021-11-20 00:00:00 | | 2021-11-21 | 2021-11-21 00:00:00 | | 2021-11-22 | 2021-11-22 00:00:00 | | 2021-11-23 | 2021-11-23 00:00:00 | | 2021-11-24 | 2021-11-24 00:00:00 | | 2021-11-25 | 2021-11-25 00:00:00 | | 2021-11-26 | 2021-11-26 00:00:00 | | 2021-11-27 | 2021-11-27 00:00:00 | | 2021-11-28 | 2021-11-28 00:00:00 | | 2021-11-29 | 2021-11-29 00:00:00 | +------------+---------------------+
Fungsi terkait
Fungsi TO_DATE merupakan bagian dari rangkaian fungsi tanggal. Untuk informasi lebih lanjut tentang fungsi perhitungan dan konversi tanggal, lihat Fungsi Tanggal.