Devuelve el número de días entre dos fechas como enddate - startdate.
Límites
Compatible únicamente con Realtime Compute for Apache Flink que usa Ververica Runtime (VVR) 3.0.0 o versiones posteriores.
Sintaxis
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)
Parámetros
|
Parámetro |
Tipo de dato |
|
enddate |
TIMESTAMP o VARCHAR |
|
startdate |
TIMESTAMP o VARCHAR |
El resultado equivale aenddate - startdate. Sienddatees anterior astartdate, el resultado es negativo.
Formatos de fecha VARCHAR: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.
Valor devuelto
Valor INT que representa el número de días desde startdate hasta enddate. Devuelve NULL si alguna entrada es NULL o si ocurre un error de análisis sintáctico.
Ejemplo
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;
Datos de prueba:
|
datetime1 (VARCHAR) |
datetime2 (VARCHAR) |
nullstr (VARCHAR) |
|
2017-10-15 00:00:00 |
2017-09-15 00:00:00 |
NULL |