date_diff-Funktion

Gilt für:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 13.3 LTS und höher

Gibt die Differenz zwischen zwei Daten in Tagen oder zwischen zwei Zeitstempeln in einer bestimmten Einheit zurück.

Syntax

date_diff(endDate, startDate)

date_diff(unit, start, end)

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

Argumente

  • endDate: Ein DATE-Endausdruck.
  • startDate: Ein DATE-Anfangsausdruck.
  • unit: Eine Berechnungseinheit.
  • start: Ein TIMESTAMP-Anfangsausdruck.
  • end: Ein TIMESTAMP-Endausdruck.

Gibt zurück

  • Für date_diff(endDate, startDate), , , INTEGER das die Anzahl der Tage von startDate nach endDatedarstellt.
  • Für date_diff(unit, start, end), , das BIGINT die Differenz zwischen start und end gemessen in units darstellt. Diese Form ist ein Synonym für timestampdiff Funktion.

Das Ergebnis ist negativ, wenn der Anfangswert größer als der Endwert ist.

Die Funktion zählt ganze verstrichene Einheiten basierend auf UTC, wobei DAY 86.400 Sekunden entspricht.

Ein Monat gilt als verstrichen, wenn der Kalendermonat erhöht wurde und der Kalendertag und die Uhrzeit mindestens ihren anfänglichen Werten entsprechen. Daraus werden Wochen, Quartale und Jahre berechnet.

Beispiele

> 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