Mit MySQL DATEDIFF können Sie sich die Anzahl der Tage zwischen zwei Daten ausgeben lassen. Die Werte sind dabei entweder positiv oder negativ.

Was ist MySQL DATEDIFF?

Um noch ziel­ge­rich­te­ter mit MySQL arbeiten zu können, lohnt es sich, einige Daten- und Zeit­funk­tio­nen zu kennen. Einer der nütz­lichs­ten Befehle des Da­ten­bank­ma­nage­ment­sys­tems ist die Funktion MySQL DATEDIFF. Sie gibt die Anzahl der Tage zwischen zwei Daten aus. Dafür müssen diese lediglich als zu­ge­las­se­ne Da­ten­wer­te hin­ter­legt sein. Die jeweilige Ausgabe ist dann entweder ein positiver oder ein negativer Wert, je nachdem, ob der Zeitraum chro­no­lo­gisch abgefragt wird oder nicht.

Die Syntax von MySQL DATEDIFF

Die Syntax von MySQL DATEDIFF ist sehr einfach. Wenn Sie MySQL lernen möchten, merken Sie sich lediglich folgenden Befehl:

SELECT DATEDIFF ("Ausdruck1", "Ausdruck2")
bash

"Ausdruck1" ist dabei das erste Datum und "Ausdruck2" das zweite.

Beispiel für MySQL DATEDIFF

Anhand eines einfachen Beispiels können Sie schnell erkennen, wie MySQL DATEDIFF funk­tio­niert:

SELECT DATEDIFF ("2022-01-27", "2022-01-17");
bash

Wenn Sie diesen Befehl ausführen, erhalten Sie als Ausgabe:

DATEDIFF ("2022-01-27", "2022-01-17")
10
bash

MySQL DATEDIFF bei längeren Zeit­an­ga­ben

Auch bei längeren Zeit­an­ga­ben funk­tio­niert MySQL DATEDIFF und filtert lediglich die re­le­van­ten In­for­ma­tio­nen. Wenn Sie also jeweils Datum und Uhrzeit angeben, be­rück­sich­tigt MySQL DATEDIFF aus­schließ­lich die beiden Da­tums­an­ga­ben. Das sieht bei­spiels­wei­se so aus:

SELECT DATEDIFF ("2022-01-27 14:22:43", "2022-01-17 20:19:35");
bash

Die Ausgabe wäre in diesem Fall wieder „10“.

Beispiel für einen negativen Wert

Sie können MySQL DATEDIFF al­ler­dings auch dann verwenden, wenn zuerst das frühere und dann das spätere Datum abgefragt wird. In diesem Fall erhalten Sie einen negativen Wert. Das sieht so aus:

SELECT DATEDIFF ("2022-01-01", "2022-01-30");
bash

Die Ausgabe lautet für dieses Beispiel wie folgt:

DATEDIFF ("2022-01-01", "2022-01-30")
-29
bash
Zum Hauptmenü