В MariaDB можете да използвате TIMESTAMPDIFF()
функция за изчисляване на възрастта на човек (или възрастта на каквото и да било в този смисъл).
TIMESTAMPDIFF()
е вградена функция за дата и час, която връща разликата между два израза за дата или дата и час. Предаването на YEAR
като първи аргумент, дата на раждане като втори аргумент и текущата дата като трети, ще върне възрастта в години.
Пример
Ето пример за демонстрация:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Резултат:
+------+ | Age | +------+ | 36 | +------+
Тук използваме CURDATE()
за да върнете текущата дата.
Пример за база данни
Ето пример, който връща възрастта на домашните любимци в база данни, след което сортира резултатите по възраст в низходящ ред:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Резултат:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Домашните любимци, които са на по-малко от една година, имат възраст 0
.
Където колоната за дата на раждане е null
, резултатът е null
.