Funkce timestampdiff
Platí pro: Databricks SQL
Databricks Runtime 10.4 LTS a vyšší
Vrátí rozdíl mezi dvěma časovými razítky měřenými ve unit
s.
timestampdiff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
unit
: Měrná jednotka.start
: PočátečníTIMESTAMP
výraz.end
: KoncovýTIMESTAMP
výraz.
Ú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.
-- One second shy of a month elapsed
> SELECT timestampdiff(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 timestampdiff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
1
-- Start is greater than the end
> SELECT timestampdiff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
-120