V MariaDB můžete použít TIMESTAMPDIFF()
funkce pro výpočet věku osoby (nebo věku čehokoli jiného).
TIMESTAMPDIFF()
je vestavěná funkce data a času, která vrací rozdíl mezi dvěma výrazy data nebo datetime. Absolvování YEAR
jako první argument, datum narození jako druhý argument a aktuální datum jako třetí, vrátí věk v letech.
Příklad
Zde je příklad k demonstraci:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Výsledek:
+------+ | Age | +------+ | 36 | +------+
Zde používáme CURDATE()
vrátíte aktuální datum.
Příklad databáze
Zde je příklad, který vrátí věk domácích mazlíčků v databázi a výsledky seřadí podle věku v sestupném pořadí:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Výsledek:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Domácí mazlíčci mladší než rok mají věk 0
.
Kde je sloupec data narození null
, výsledkem je null
.