date_diff işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri

İki tarih arasındaki farkı gün cinsinden veya belirli bir birimdeki iki zaman damgası arasındaki farkı döndürür.

Söz dizimi

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Bağımsız değişkenler

  • endDate: Bir bitiş DATE ifadesi.
  • startDate: Başlangıç DATE ifadesi.
  • unit: Ölçü birimi.
  • start: Başlangıç TIMESTAMP ifadesi.
  • end: Bir bitiş TIMESTAMP ifadesi.

Döndürülenler

  • Için date_diff(endDate, startDate), an INTEGER ile arasındaki gün startDateendDatesayısını temsil eder.
  • Içindate_diff(unit, start, end), a BIGINT ile s'de ölçülen unitfarkı startend temsil eder. Bu biçim, işlevintimestampdiff eşanlamlıdır.

Başlangıç değeri bitiş değerinden büyükse sonuç negatiftir.

İşlev, 86400 saniyeye göre UTCDAY geçen birimlerin tamamını sayar.

Takvim ayı arttığında ve takvim günü ve saati başlangıç için eşit veya daha büyük olduğunda bir ay geçtiği kabul edilir. Haftalar, çeyrekler ve yıllar bundan sonra gelir.

Örnekler

> 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