Topik ini menjelaskan penggunaan fungsi DATEDIFF, yang menghitung selisih antara dua nilai tanggal.
Batasan
Fungsi ini hanya didukung di Realtime Compute for Apache Flink dengan Ververica Runtime (VVR) versi 3.0.0 atau lebih baru.
Sintaks
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)Parameter input
Parameter | Tipe data |
startdate | TIMESTAMP atau VARCHAR |
enddate | TIMESTAMP atau VARCHAR |
null
Tanggal dengan tipe VARCHAR harus dalam format yyyy-MM-dd atau yyyy-MM-dd HH:mm:ss.
Jika parameter input adalah NULL atau terjadi kesalahan penguraian, hasilnya akan dikembalikan sebagai NULL.
Contoh
Data Uji
datetime1(VARCHAR)
datetime2(VARCHAR)
nullstr(VARCHAR)
2017-10-15 00:00:00
2017-09-15 00:00:00
NULL
Pernyataan Uji
SELECT DATEDIFF(datetime1, datetime2) as int1, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',datetime2) as int2, DATEDIFF(datetime2,TIMESTAMP '2017-10-15 23:00:00') as int3, DATEDIFF(datetime2,nullstr) as int4, DATEDIFF(nullstr,TIMESTAMP '2017-10-15 23:00:00') as int5, DATEDIFF(nullstr,datetime2) as int6, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',TIMESTAMP '2017-9-15 00:00:00')as int7 FROM T1;Hasil Uji
int1(INT)
int2(INT)
int3(INT)
int4(INT)
int5(INT)
int6(INT)
int7(INT)
30
30
-30
NULL
NULL
NULL
30