Sdílet prostřednictvím


Funkce timediff

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

Vrátí rozdíl mezi dvěma časovými razítky měřenými ve units. Tato funkce je synonymem pro funkci timestampdiff.

Syntaxe

timediff(unit, start, end)

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

Argumenty

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

Návraty

Úloha BIGINT.

Pokud start je výsledek větší než end výsledek záporný.

Funkce počítá celé uplynulé jednotky na UTC DAY 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

-- One second shy of a month elapsed
> SELECT timediff(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 timediff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
 1

-- Start is greater than the end
> SELECT timediff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
 -120