İki tarih arasındaki gün sayısını enddate - startdate formülüne göre döndürür.
Sınırlamalar
Yalnızca Ververica Runtime (VVR) 3.0.0 veya sonraki sürümleri kullanan Realtime Compute for Apache Flink ortamında desteklenir.
Söz dizimi
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)
Parametreler
| Parametre | Veri türü |
|---|---|
| enddate | TIMESTAMP veya VARCHAR |
| startdate | TIMESTAMP veya VARCHAR |
Sonuç,enddate - startdateişleminin sonucuna eşittir.enddatedeğeristartdatedeğerinden önceyse sonuç negatif olur.
VARCHAR tarih biçimleri: yyyy-MM-dd veya yyyy-MM-dd HH:mm:ss.
Dönüş değeri
startdate ile enddate arasındaki gün sayısını gösteren bir INT değeri döndürür. Girişlerden biri NULL ise veya bir ayrıştırma hatası oluşursa NULL döner.
Örnek
SELECT
DATEDIFF(datetime1, datetime2) AS int1, -- 30
DATEDIFF(TIMESTAMP '2017-10-15 23:00:00', datetime2) AS int2, -- 30
DATEDIFF(datetime2, TIMESTAMP '2017-10-15 23:00:00') AS int3, -- -30
DATEDIFF(datetime2, nullstr) AS int4, -- NULL
DATEDIFF(nullstr, TIMESTAMP '2017-10-15 23:00:00') AS int5, -- NULL
DATEDIFF(nullstr, datetime2) AS int6, -- NULL
DATEDIFF(TIMESTAMP '2017-10-15 23:00:00', TIMESTAMP '2017-9-15 00:00:00') AS int7 -- 30
FROM T1;
Test verileri:
| datetime1 (VARCHAR) | datetime2 (VARCHAR) | nullstr (VARCHAR) |
|---|---|---|
| 2017-10-15 00:00:00 | 2017-09-15 00:00:00 | NULL |