Função date_diff

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 13.3 LTS e superior

Devolve a diferença entre duas datas em dias, ou entre dois carimbos temporais numa unidade especificada.

Sintaxe

date_diff(endDate, startDate)

date_diff(unit, start, end)

unit
 { MICROSECOND |
   MILLISECOND |
   SECOND |
   MINUTE |
   HOUR |
   DAY |
   WEEK |
   MONTH |
   QUARTER |
   YEAR }

Argumentos

  • endDate: Uma expressão final DATE .
  • startDate: Uma expressão inicial DATE .
  • unit: Uma unidade de medida.
  • start: Uma expressão inicial TIMESTAMP .
  • end: Uma expressão final TIMESTAMP .

Devoluções

  • Para date_diff(endDate, startDate), e INTEGER que representa o número de dias de startDate para endDate.
  • Para date_diff(unit, start, end), a BIGINT que representa a diferença entre start e end medida em units. Esta forma é sinónimo de timestampdiff função.

O resultado é negativo se o valor inicial for maior do que o valor final.

A função conta unidades inteiras decorridas com base em UTC um DAY ser 86400 segundos.

Considera-se decorrido um mês quando o mês civil tiver aumentado e o dia e a hora do calendário forem iguais ou superiores ao início. Seguem-se semanas, trimestres e anos.

Exemplos

> SELECT date_diff(DATE'2009-07-31', DATE'2009-07-30');
 1

-- One second shy of a month elapsed
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 11:59:59');
 0

-- One month has passed even though its' not end of the month yet because day and time line up.
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
 1

-- Start is greater than the end
> SELECT date_diff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
 -120