W MariaDB możesz użyć TIMESTAMPDIFF()
funkcja obliczania wieku osoby (lub wieku czegokolwiek w tym zakresie).
TIMESTAMPDIFF()
to wbudowana funkcja daty i godziny, która zwraca różnicę między dwoma wyrażeniami daty lub daty i godziny. Przekazanie YEAR
jako pierwszy argument, data urodzenia jako drugi argument, a aktualna data jako trzeci, zwrócą wiek w latach.
Przykład
Oto przykład do zademonstrowania:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Wynik:
+------+ | Age | +------+ | 36 | +------+
Tutaj używamy CURDATE()
aby zwrócić aktualną datę.
Przykład bazy danych
Oto przykład, który zwraca wiek zwierząt w bazie danych, a następnie sortuje wyniki według wieku w kolejności malejącej:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Wynik:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Zwierzęta, które mają mniej niż rok, mają wiek 0
.
Gdzie kolumna daty urodzenia to null
, wynik to null
.