Funkce date_diff

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 13.3 LTS a vyšší

Vrací rozdíl mezi dvěma daty v dnech nebo mezi dvěma časovými razítky v určené jednotce.

Syntaxe

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Argumenty

  • endDate: Koncový DATE výraz.
  • startDate: Počáteční DATE výraz.
  • unit: Měrná jednotka.
  • start: Počáteční TIMESTAMP výraz.
  • end: Koncový TIMESTAMP výraz.

Návraty

  • Pro date_diff(endDate, startDate), , , INTEGER který představuje počet dní od startDate do .endDate
  • Pro date_diff(unit, start, end), , BIGINT , který představuje rozdíl mezi start a měřený end v units. Tato forma je synonymem protimestampdiff funkci.

Výsledek je záporný, pokud je počáteční hodnota větší než koncová hodnota.

Funkce počítá celé uplynulé jednotky na UTCDAY základě hodnoty 86400 sekund.

Jeden měsíc se považuje za uplynulý, když se kalendářní měsíc zvýšil a kalendářní den a čas se rovná začátku nebo vyšší. Od toho následují týdny, čtvrtiny a roky.

Příklady

> 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