Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
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 finaleDATE. -
startDate: espressione inizialeDATE. -
unit: unità di misura. -
start: espressione inizialeTIMESTAMP. -
end: espressione finaleTIMESTAMP.
Valori restituiti
- Per
date_diff(endDate, startDate), eINTEGERche rappresenta il numero di giorni dastartDateaendDate. - Per
date_diff(unit, start, end), aBIGINTche rappresenta la differenza trastarteendmisurata inunits. Questa forma è sinonimo ditimestampdifffunzione.
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