Oi, Brenda, tudo bem?
Realmente, a função JULIANDAY
retorna a diferença em dias, e dividir por 365 pode não ser a forma mais precisa, por conta dos anos bissextos.
Como alternativa, você pode usar a função strftime
para extrair o ano atual e o ano de nascimento e, em seguida, subtrair um do outro. Aqui está um exemplo de como você pode fazer isso:
SELECT nome_aluno, data_nascimento,
(strftime('%Y', 'now') - strftime('%Y', data_nascimento)) -
(strftime('%m-%d', 'now') < strftime('%m-%d', data_nascimento)) AS idade
FROM Alunos;
No código acima:
strftime('%Y', 'now')
obtém o ano atual.strftime('%Y', data_nascimento)
obtém o ano de nascimento.- A subtração básica entre os anos dá uma estimativa inicial.
- A expressão
(strftime('%m-%d', 'now') < strftime('%m-%d', data_nascimento))
verifica se o aluno já fez aniversário este ano. Se não fez, subtrai um ano da idade.
Espero ter ajudado.
Qualquer dúvida, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!