SELECT Nome,
(strftime('%Y', 'now') - strftime('%Y', DataNascimento)) -
(strftime('%m', 'now') < strftime('%m', DataNascimento)) AS Idade
FROM TabelaClientes;
SELECT Nome,
(strftime('%Y', 'now') - strftime('%Y', DataNascimento)) -
(strftime('%m', 'now') < strftime('%m', DataNascimento)) AS Idade
FROM TabelaClientes;
Oi, Márcia! Tudo bom?
Excelente, siga praticando com os desafios!
Você soube aplicar as funções de data strftime
para calcular a idade de forma eficiente, aproveitou o operador lógico para ajustar o cálculo com base no mês de nascimento e entendeu como o tratamento de datas é essencial para gerar informações precisas em sistemas reais.
Como dica adicional, experimente utilizar CASE
quando precisar lidar com condições mais complexas no cálculo de idade. Assim:
SELECT Nome,
CASE
WHEN strftime('%m-%d', 'now') >= strftime('%m-%d', DataNascimento)
THEN strftime('%Y', 'now') - strftime('%Y', DataNascimento)
ELSE strftime('%Y', 'now') - strftime('%Y', DataNascimento) - 1
END AS Idade
FROM TabelaClientes;
Resultado: Calcula a idade considerando mês e dia, com maior precisão.
Com isso, você poderá tratar aniversários de maneira mais adaptada.
Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!