Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida - Exercícios

Com relação aos exercícios "mão na massa" passados no fim do curso, gostaria por favor de uma ajuda em um deles:

"Consulta 4: Realizar uma consulta que calcula a idade dos Alunos."

Fiz dessa forma, mas acredito que não é a mais adequada, porque trouxe em dias. Poderia me ajudar?

SELECT nome_aluno, data_nascimento,
JULIANDAY(‘now’) - JULIANDAY(data_nascimento)
FROM Alunos; 

tentei também

SELECT nome_aluno, data_nascimento,
FLOOR(JULIANDAY('now') - JULIANDAY(data_nascimento)/365) 
FROM Alunos;
2 respostas
solução!

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!

Muito obrigada pelo esclarecimento, prof!