SQL Academy
Premium
Funktionsreferenz

DATEDIFF

Gibt die Anzahl der Tage zwischen zwei Daten zurück.

MySQL 8.1
DATEDIFF(date1, date2)

Parameter

date1DATE
Datum, von dem date2 abgezogen wird
date2DATE
Abzuziehendes Datum

Rückgabewert

Ganze Zahl der Tage (date1 minus date2), negativ, wenn date1 früher liegt; NULL, wenn mindestens ein Argument NULL ist

Beispiele

Unterschied in Tagen

MySQL 8.1
SELECT DATEDIFF('2022-12-05', '2022-12-01') AS days;
days
4

Uhrzeit wird ignoriert

MySQL 8.1
SELECT DATEDIFF('2022-12-05 23:59:59', '2022-12-01 00:00:01') AS days;
days
4

Nächte pro Buchung

MySQL 8.1
SELECT id,
	start_date,
	end_date,
	DATEDIFF(end_date, start_date) AS nights
FROM Reservations;
idstart_dateend_datenights
12018-11-13 12:00:002018-11-15 12:00:002
22018-10-09 12:00:002018-10-12 12:00:003
32018-12-29 12:00:002019-01-07 12:00:009
42019-02-01 12:00:002019-02-02 12:00:001
52019-02-02 12:00:002019-02-04 12:00:002
62020-03-21 09:00:002020-03-23 09:00:002
72020-03-21 10:00:002020-04-21 10:00:0031
82019-06-14 10:00:002019-06-24 10:00:0010
92019-05-11 10:00:002019-05-14 10:00:003
102019-11-04 10:00:002019-11-06 10:00:002

Details

Die Uhrzeit in den Argumenten wird ignoriert. Für die Differenz in Stunden, Minuten oder Monaten verwende TIMESTAMPDIFF. In PostgreSQL gibt es die Funktion nicht: Die Anzahl der Tage liefert die Subtraktion date1 - date2, und AGE gibt ein Intervall in Jahren, Monaten und Tagen zurück.

Siehe auch

Wo du es lernst