Funzione date_diff

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 13.3 LTS e versioni successive

Restituisce la differenza tra due date in giorni, o tra due timestamp in un'unità specificata.

Sintassi

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Argomenti

  • endDate: espressione finale DATE .
  • startDate: espressione iniziale DATE .
  • unit: unità di misura.
  • start: espressione iniziale TIMESTAMP .
  • end: espressione finale TIMESTAMP .

Valori restituiti

  • Per date_diff(endDate, startDate), e INTEGER che rappresenta il numero di giorni da startDate a endDate.
  • Per date_diff(unit, start, end), a BIGINT che rappresenta la differenza tra start e end misurata in units. Questa forma è sinonimo di timestampdiff funzione.

Il risultato è negativo se il valore iniziale è maggiore del valore finale.

La funzione conta intere unità trascorse in base a UTC un valore DAY di 86400 secondi.

Un mese viene considerato trascorso quando il mese di calendario è aumentato e il giorno e l'ora del calendario è uguale o superiore all'inizio. Settimane, trimestri e anni seguono da questo.

Esempi

> 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