Oferta Nacional - 234x60

Arquivo

Arquivo de fevereiro, 2011

Como calcular idade direto no mysql

Para calcular a idade usando o próprio mysql, é muito simples:

Quero calcular a minha idade (nasci em 1983-09-16):

select year(curdate()) – year(’1983-09-16′) – ( right(curdate(),5) < right(’1983-09-16′,5) ) as idade;

isso me retorna
———
| idade |
———
| 27 |e
———

A lógica é simples:

year(curdate()) – year(’1983-09-16′) vai me retornar a diferença em anos entre hoje (curdate()) e a data do meu aniversário/nascimento (1983-09-16). Hoje, dia 2011-02-08, isso me retorna 28. Só que eu não tenho 28 anos. Ainda tenho 27.

Então pergunto se hoje, tomando como referência o mês e o dia, é menor que o mês e o dia da data de referência (o dia do meu aniversário), usando ( right(curdate(),5) < right(’1983-09-16′,5) ). Isso pergunta se ’02-08′ < ’09-16′, e me retorna 1 ou 0. Então, se for menor, vai tirar 1 de 28, e retorna a minha idade correta: 27. Se for maior, retorna 0, e tira zero de 28, ou seja, se eu fizer esta mesma consulta depois do meu aniversário, vai me retornar 28.

Você pode criar uma funçãozinha muito útil para ser usada com maior frequência em suas consultas.

Se você quiser saber a idade que a pessoa tinha em uma determinada data, basta usar esta data no lugar de curdate().

Abraço!

Related Posts Plugin for WordPress, Blogger...

Posts Relacionados:

  • Nenhum
SEO Powered by Platinum SEO from Techblissonline