44 Stimmen

MySQL: Anzahl der Tage zwischen zwei Timestamps ermitteln

Frage von Gast | Letztes Update am 19.07.2021 | Erstellt am 09.02.2016

Ich würde gerne mit MySQL bestimmen, wie viele Tage zwischen zwei gegebenen Zeiten liegen.

Ich habe also einen Timestamp beziehungsweise ein Datum und möchte dieses mit einem anderen Datum vergleichen und die Zeitdifferenz berechnen. Nach Möglichkeit sollte beachtet werden, dass die Monate unterschiedlich lang sind.

Wie kann man das mit MySQL machen?

AntwortenPositivNegativ
5Beste Antwort7 Stimmen

Dafür gibt es die Funktion DATEDIFF() in MySQL. Dieser Funktion kannst du zwei Zeiten übergeben und du erhältst die Zeitdifferenz zwischen den beiden zurück.

Zum Beispiel so:

SELECT DATEDIFF('2031-01-01', '2021-01-01') AS d;

Hier ermitteln wir die Anzahl der Tage zwischen dem 1. Januar 2021 und dem 1. Januar 2031. Damit das Ergebnis positiv wird, muss das erste Datum größer sein als das zweite. Ansonsten erhalten wir einen negativen Wert.

Natürlich kannst du das Datum auch direkt aus der Tabelle holen:

SELECT id, DATEDIFF('2021-01-01', dat) FROM tab;

Hier lesen wir die Einträge aus der Tabelle "tab" aus. In dieser Tabelle gibt es die Spalte "dat", in der ein Datum abgespeichert ist. Wir möchten den zeitlichen Abstand zwischen diesem Datum und dem 1. Januar 2021 ermitteln und auslesen.

Statt einem fixen Datum können wir auch das aktuelle Datum mit CURDATE() verwenden:

SELECT DATEDIFF('2031-01-01', CURDATE()) AS d;

Diese Abfrage sagt uns, wie viele Tage uns noch vom 1. Januar 2031 trennen.

Falls wir das Alter der Einträge in der Datenbank bestimmen möchten, können wir auch hier mit CURDATE() arbeiten und beides kombinieren:

SELECT id, DATEDIFF(CURATE(), dat) FROM tab;

Übrigens gibt es auch die Funktion TIMEDIFF(), mit der wir den Abstand zwischen zwei Timestamps noch genauer bestimmen können.
Letztes Update am 19.07.2021 | Erstellt am 10.02.2016

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.