Renvoie le nombre de jours entre deux dates, calculé comme enddate - startdate.
Limites
Prise en charge uniquement dans Realtime Compute for Apache Flink avec Ververica Runtime (VVR) 3.0.0 ou version ultérieure.
Syntaxe
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)
Paramètres
| Paramètre | Type de données |
|---|---|
| enddate | TIMESTAMP ou VARCHAR |
| startdate | TIMESTAMP ou VARCHAR |
Le résultat équivaut àenddate - startdate. Sienddateest antérieure àstartdate, le résultat est négatif.
Formats de date VARCHAR : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.
Valeur renvoyée
Entier (INT) représentant le nombre de jours entre startdate et enddate. Renvoie NULL si l'une des entrées est NULL ou en cas d'erreur d'analyse.
Exemple
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;
Données de test :
| datetime1 (VARCHAR) | datetime2 (VARCHAR) | nullstr (VARCHAR) |
|---|---|---|
| 2017-10-15 00:00:00 | 2017-09-15 00:00:00 | NULL |