I MariaDB kan du bruge TIMESTAMPDIFF()
funktion til at beregne en persons alder (eller alderen på hvad som helst for den sags skyld).
TIMESTAMPDIFF()
er en indbygget dato- og klokkeslætsfunktion, der returnerer forskellen mellem to dato- eller datetime-udtryk. Består YEAR
som det første argument, fødselsdato som det andet argument, og den nuværende dato som det tredje, vil returnere alderen i år.
Eksempel
Her er et eksempel til demonstration:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Resultat:
+------+ | Age | +------+ | 36 | +------+
Her bruger vi CURDATE()
for at returnere den aktuelle dato.
Databaseeksempel
Her er et eksempel, der returnerer kæledyrs alder i en database, og derefter sorterer resultaterne efter alder i faldende rækkefølge:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Resultat:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Kæledyr, der er mindre end et år gamle, har en alder på 0
.
Hvor fødselsdatokolonnen er null
, resultatet er null
.