Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:DATEDIFF

Última atualização: Jun 27, 2026

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 a enddate - startdate . Se enddate for anterior a startdate , 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