In MariaDB können Sie den TIMESTAMPDIFF()
verwenden Funktion, um das Alter einer Person (oder das Alter von irgendetwas) zu berechnen.
TIMESTAMPDIFF()
ist eine integrierte Datums- und Zeitfunktion, die die Differenz zwischen zwei Datums- oder Datumszeitausdrücken zurückgibt. YEAR
bestanden als erstes Argument, Geburtsdatum als zweites Argument und das aktuelle Datum als drittes geben das Alter in Jahren zurück.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Ergebnis:
+------+ | Age | +------+ | 36 | +------+
Hier verwenden wir CURDATE()
um das aktuelle Datum zurückzugeben.
Datenbankbeispiel
Hier ist ein Beispiel, das das Alter von Haustieren in einer Datenbank zurückgibt und die Ergebnisse dann in absteigender Reihenfolge nach Alter sortiert:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Ergebnis:
+---------+------------+------------+------+ | PetName | DOB | CURDATE() | Age | +---------+------------+------------+------+ | Scratch | 2018-10-01 | 2021-05-30 | 2 | | Fetch | 2019-08-16 | 2021-05-30 | 1 | | Wag | 2020-03-15 | 2021-05-30 | 1 | | Fluffy | 2020-11-20 | 2021-05-30 | 0 | | Tweet | 2020-11-28 | 2021-05-30 | 0 | | Fluffy | 2020-09-17 | 2021-05-30 | 0 | | Bark | NULL | 2021-05-30 | NULL | | Meow | NULL | 2021-05-30 | NULL | +---------+------------+------------+------+
Haustiere, die jünger als ein Jahr sind, haben ein Alter von 0
.
Wobei die Geburtsdatumsspalte null
ist , ist das Ergebnis null
.