All Products
Search
Document Center

Realtime Compute for Apache Flink:TO_DATE

Last Updated:May 07, 2026

Mengonversi nilai tanggal dari tipe INT atau VARCHAR ke tipe data DATE. Jika parameter format tidak ditentukan, input harus mengikuti format default yyyy-MM-dd.

Sintaksis

Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date, VARCHAR format)

Parameter

Parameter Tipe data Deskripsi
time INT Jumlah hari yang telah berlalu sejak epoch time 1 Januari 1970 pukul 00:00:00 UTC. Contohnya, 200 menghasilkan 1970-07-20.
Catatan

Perilaku ini hanya berlaku untuk Ververica Runtime (VVR) 8.0.6 dan versi yang lebih baru. Untuk versi VVR sebelum 8.0.6, nilai tersebut secara implisit dikonversi ke STRING.

date VARCHAR String tanggal. Format default-nya adalah yyyy-MM-dd. Contohnya, '2017-09-15'.
format VARCHAR Pola format tanggal kustom. Contohnya, 'yyyyMMdd' atau 'MMddyyyy'.

Catatan penggunaan

  • Perilaku parameter time (INT) berbeda tergantung pada versi VVR:

    • VVR 8.0.6 dan versi yang lebih baru: time diinterpretasikan sebagai jumlah hari sejak epoch (1 Januari 1970 pukul 00:00:00 UTC).

    • VVR versi sebelum 8.0.6: time secara implisit dikonversi ke STRING sebelum diproses.

  • Jika parameter format tidak ditentukan untuk input VARCHAR, sistem akan menerapkan format default yyyy-MM-dd. Apabila data hulu menggunakan format lain—misalnya MySQL DATETIME (yyyy-MM-dd HH:mm:ss)—Anda harus secara eksplisit menentukan parameter format sesuai dengan format aktualnya. Jika tidak, proses parsing akan gagal dan mengembalikan hasil yang salah seperti 1970-01-01.

Contoh

Contoh berikut menggunakan tabel T1 sebagai sumber data.

Tabel T1

date1 (INT) date2 (VARCHAR) date3 (VARCHAR) date4 (VARCHAR) date5 (VARCHAR)
200 2017-09-15 20170915 09152017 092017

Mengonversi input INT

Gunakan bilangan bulat yang merepresentasikan jumlah hari sejak epoch.

SELECT TO_DATE(date1) AS var1
FROM T1;
var1 (DATE)
1970-07-20 (VVR 8.0.6 dan versi yang lebih baru)
0200-01-01 (VVR versi sebelum 8.0.6)

Mengonversi input VARCHAR menggunakan format default

Jika input sudah dalam format yyyy-MM-dd, Anda dapat mengabaikan parameter format.

SELECT TO_DATE(date2) AS var2
FROM T1;
var2 (DATE)
2017-09-15

Mengonversi input VARCHAR menggunakan format kustom

Gunakan pola format yang sesuai dengan struktur string input.

SELECT TO_DATE(date3, 'yyyyMMdd') AS var3,
       TO_DATE(date4, 'MMddyyyy') AS var4,
       TO_DATE(date5, 'MMyyyy')   AS var5
FROM T1;
var3 (DATE) var4 (DATE) var5 (DATE)
2017-09-15 2017-09-15 2017-09-01

Lanjutan

  • TO_TIMESTAMP_TZ: Mengonversi nilai tanggal VARCHAR ke TIMESTAMP berdasarkan zona waktu tertentu.

  • DATE_ADD: Mengembalikan tanggal setelah menambahkan jumlah hari tertentu.