Udostępnij za pośrednictwem


Funkcja date_diff

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.3 LTS i nowsze

Zwraca różnicę między dwoma znacznikami czasu mierzonymi w units. date_diff (sygnatura czasowa) jest synonimem funkcji timestampdiff.

Składnia

date_diff(unit, start, end)

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

Argumenty

  • unit: jednostka miary.
  • start: początkowe wyrażenie TIMESTAMP.
  • end: kończące się wyrażenie TIMESTAMP.

Zwraca

Klasa BIGINT.

Jeśli start wynik jest większy niż end wynik jest ujemny.

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

-- 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