En MariaDB, puede usar TIMESTAMPDIFF()
función para calcular la edad de una persona (o la edad de cualquier cosa).
TIMESTAMPDIFF()
es una función de fecha y hora incorporada que devuelve la diferencia entre dos expresiones de fecha o fecha y hora. Pasando YEAR
como primer argumento, la fecha de nacimiento como segundo argumento y la fecha actual como tercero, devolverá la edad en años.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Resultado:
+------+ | Age | +------+ | 36 | +------+
Aquí, usamos CURDATE()
para devolver la fecha actual.
Ejemplo de base de datos
Aquí hay un ejemplo que devuelve la edad de las mascotas en una base de datos, luego ordena los resultados por edad en orden descendente:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Resultado:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Las mascotas que tienen menos de un año tienen una edad de 0
.
Donde la columna de la fecha de nacimiento es null
, el resultado es null
.