Freigeben über


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 den Unterschied zwischen zwei Zeitstempeln zurück, die in units gemessen werden. date_diff (timestamp) ist ein Synonym für die timestampdiff-Funktion.

Syntax

date_diff(unit, start, end)

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

Argumente

  • unit: Eine Berechnungseinheit.
  • start: Ein TIMESTAMP-Startausdruck.
  • end: Ein TIMESTAMP-Endausdruck.

Gibt zurück

Ein BIGINT.

Ist start größer als end, ist das Ergebnis negativ.

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

-- 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