Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
Dotyczy:
Databricks SQL
Databricks Runtime 13.3 LTS i nowsze
Zwraca różnicę między dwoma datami w dniach lub między dwoma znacznikami czasu w określonej jednostce.
Składnia
date_diff(endDate, startDate)
date_diff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
Argumenty
-
endDate: wyrażenie końcoweDATE. -
startDate: wyrażenie początkoweDATE. -
unit: jednostka miary. -
start: wyrażenie początkoweTIMESTAMP. -
end: wyrażenie końcoweTIMESTAMP.
Zwraca
- Dla
date_diff(endDate, startDate), , ,INTEGERktóre oznacza liczbę dni odstartDatedo .endDate - Dla
date_diff(unit, start, end), a ,BIGINTktóra reprezentuje różnicę międzystartaendmierzoną wunits. Ta forma jest synonimemtimestampdifffunkcji.
Wynik jest ujemny, jeśli wartość początkowa jest większa niż wartość końcowa.
Funkcja zlicza całe upłynął jednostki na UTC podstawie wartości DAY 86400 sekund.
Jeden miesiąc jest uznawany za upłynął, gdy miesiąc kalendarzowy wzrósł, a dzień kalendarzowy i godzina są równe lub większe od początku. Tygodnie, kwartały i lata następują z tego.
Przykłady
> 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