Retorna o número de dias entre duas datas como enddate - startdate.
Limites
Compatível apenas com Realtime Compute for Apache Flink que usa Ververica Runtime (VVR) 3.0.0 ou posterior.
Sintaxe
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 dados |
|
enddate |
TIMESTAMP ou VARCHAR |
|
startdate |
TIMESTAMP ou VARCHAR |
O resultado equivale aenddate - startdate. Seenddatefor anterior astartdate, o resultado será negativo.
Formatos de data VARCHAR: yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.
Valor de retorno
Valor INT que representa o número de dias entre startdate e enddate. Retorna NULL se alguma entrada for NULL ou se houver erro de análise.
Exemplo
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;
Dados de teste:
|
datetime1 (VARCHAR) |
datetime2 (VARCHAR) |
nullstr (VARCHAR) |
|
2017-10-15 00:00:00 |
2017-09-15 00:00:00 |
NULL |