Como Calcular a Idade no SQL usando Firebird

Em projetos onde armazenamos a data de nascimento de pessoas, como sistemas escolares, clínicas ou CRMs, é comum precisar exibir a idade com base nessa data. No Firebird SQL, é possível calcular a idade diretamente na query usando a função DATEDIFF.
🧠 Por que calcular a idade no SQL?
Calcular a idade diretamente no SQL evita a necessidade de tratar a informação na aplicação, o que:
- Reduz código na camada de negócio;
- Melhora a performance quando exibido em listas;
- Facilita o uso em relatórios dinâmicos.
🔍 Exemplo de Consulta SQL
Suponha que você tenha uma tabela chamada aluno com os campos codigo e data_nascimento. O seguinte SQL retorna a idade de cada aluno com precisão:
SELECT
codigo,
data_nascimento,
DATEDIFF(YEAR, data_nascimento, CURRENT_DATE)
- CASE
WHEN EXTRACT(MONTH FROM data_nascimento) > EXTRACT(MONTH FROM CURRENT_DATE)
OR (
EXTRACT(MONTH FROM data_nascimento) = EXTRACT(MONTH FROM CURRENT_DATE)
AND EXTRACT(DAY FROM data_nascimento) > EXTRACT(DAY FROM CURRENT_DATE)
)
THEN 1
ELSE 0
END AS idade
FROM
aluno;
🛠️ Como funciona?
DATEDIFF(YEAR, data_nascimento, CURRENT_DATE)calcula a diferença bruta de anos.- O
CASEverifica se a pessoa já fez aniversário este ano. Se ainda não, subtrai 1 da diferença.
🧪 Exemplo Prático
| Código | Data de Nascimento | Idade |
|---|---|---|
| 1001 | 2000-10-15 | 24 |
| 1002 | 1995-01-20 | 30 |
| 1003 | 2010-12-05 | 14 |
📈 Quando usar esse cálculo
- Em telas de cadastro de alunos, pacientes ou clientes;
- Em relatórios estatísticos de faixas etárias;
- Em filtros dinâmicos, como “exibir apenas maiores de 18 anos”.
💬 Conclusão
Calcular a idade diretamente no SQL usando Firebird torna seu sistema mais inteligente e limpo. Essa é uma prática recomendada especialmente para sistemas que lidam com informações de pessoas. O melhor: você evita retrabalho e deixa a base de dados fazer o que sabe melhor.
Esse cálculo é compatível com Firebird 2.5+, e garante que a idade esteja correta mesmo que o aniversário ainda não tenha sido completado este ano.
🔗 Compartilhe com colegas que trabalham com bancos de dados Firebird ou Delphi — essa dica pode economizar várias linhas de código!
📢 Gostou da dica?
Compartilhe nas suas redes sociais e marque quem precisa ver isso!
📎 #SQL #Firebird #BancoDeDados #Desenvolvimento
#Sistemas #ERP #Delphi #Programação #GiovaniDaCruz