Función date_diff

Se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 13.3 LTS y versiones posteriores

Devuelve la diferencia entre dos fechas en días, o entre dos marcas de tiempo en una unidad especificada.

Sintaxis

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Argumentos

  • endDate: Una expresión DATE final.
  • startDate: Una expresión DATE inicial.
  • unit: una unidad de medida.
  • start: Una expresión TIMESTAMP inicial.
  • end: Una expresión TIMESTAMP final.

Devoluciones

  • Para date_diff(endDate, startDate), y INTEGER que representa el número de días de startDate a endDate.
  • Para date_diff(unit, start, end), a BIGINT que representa la diferencia entre start y end medida en units. Esta forma es sinónimo de timestampdiff función.

El resultado es negativo si el valor inicial es mayor que el valor final.

La función cuenta todas las unidades transcurridos en función de UTC con un DAY valor de 86400 segundos.

Se considera un mes transcurrido cuando el mes calendario aumentó y el día calendario y la hora son iguales o mayores al inicio. A partir de ahí se producen semanas, trimestres y años.

Ejemplos

> 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