No MariaDB, você pode usar o
TIMESTAMPDIFF()
função para calcular a idade de uma pessoa (ou a idade de qualquer coisa). TIMESTAMPDIFF()
é uma função de data e hora integrada que retorna a diferença entre duas expressões de data ou data e hora. Passando YEAR
como primeiro argumento, data de nascimento como segundo argumento e data atual como terceiro, retornarão a idade em anos. Exemplo
Segue um exemplo para demonstrar:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Resultado:
+------+ | Age | +------+ | 36 | +------+
Aqui, usamos
CURDATE()
para retornar a data atual. Exemplo de banco de dados
Aqui está um exemplo que retorna a idade dos animais de estimação em um banco de dados e classifica os resultados por idade em ordem decrescente:
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 | +---------+------------+------------+------+
Animais de estimação com menos de um ano têm idade de
0
. Onde a coluna de data de nascimento é
null
, o resultado é null
.