I MariaDB kan du använda TIMESTAMPDIFF()
funktion för att beräkna en persons ålder (eller åldern på vad som helst för den delen).
TIMESTAMPDIFF()
är en inbyggd datum- och tidsfunktion som returnerar skillnaden mellan två datum- eller datetime-uttryck. Passerar YEAR
som det första argumentet, födelsedatum som det andra argumentet, och det aktuella datumet som det tredje, returnerar åldern i år.
Exempel
Här är ett exempel att visa:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Resultat:
+------+ | Age | +------+ | 36 | +------+
Här använder vi CURDATE()
för att returnera det aktuella datumet.
Databasexempel
Här är ett exempel som returnerar åldern på husdjur i en databas och sedan sorterar resultaten efter ålder i fallande ordning:
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 | +---------+------------+------------+------+
Husdjur som är yngre än ett år har en ålder på 0
.
Där kolumnen för födelsedatum är null
, resultatet är null
.