Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce
Platí pro:
Databricks SQL
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ýDATEvýraz. -
startDate: PočátečníDATEvýraz. -
unit: Měrná jednotka. -
start: PočátečníTIMESTAMPvýraz. -
end: KoncovýTIMESTAMPvýraz.
Návraty
- Pro
date_diff(endDate, startDate), , ,INTEGERkterý představuje počet dní odstartDatedo .endDate - Pro
date_diff(unit, start, end), ,BIGINT, který představuje rozdíl mezistarta měřenýendvunits. Tato forma je synonymem protimestampdifffunkci.
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