date_diff-functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 13.3 LTS en hoger

Geeft het verschil terug tussen twee data in dagen, of tussen twee tijdstempels in een gespecificeerde eenheid.

Syntaxis

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Argumenten

  • endDate: Een eindexpressie DATE .
  • startDate: Een beginexpressie DATE .
  • unit: Een maateenheid.
  • start: Een beginexpressie TIMESTAMP .
  • end: Een eindexpressie TIMESTAMP .

Retouren

  • Voor date_diff(endDate, startDate), en INTEGER dat het aantal dagen van startDate tot endDatevertegenwoordigt.
  • Voor date_diff(unit, start, end), een BIGINT dat het verschil tussen start en end gemeten in units vertegenwoordigt. Deze vorm is een synoniem voor timestampdiff functie.

Het resultaat is negatief als de beginwaarde groter is dan de eindwaarde.

De functie telt hele verstreken eenheden op UTC basis van een DAY getal van 86400 seconden.

Een maand wordt beschouwd als verstreken wanneer de kalendermaand is toegenomen en de kalenderdag en -tijd gelijk of groter zijn aan het begin. Weken, kwartalen en jaren volgen daarvan.

Voorbeelden

> 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