Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:DATEDIFF

Dernière mise à jour :Aug 09, 2026

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 . Si enddate est 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