[firebase-br] Calcular idade

Nivaldo Martins nivaldomart em gmail.com
Seg Nov 2 16:22:30 -03 2009


Olá Humberto,

Tente isto:

cria uma procedure que recebe a data atual e a data de nascimento como
parâmetros e retorna um smallint
/*****************************************************************************************************/
/**  Obtem o resultado em anos simples apenas subtraindo o ano atual do ano
de nascimento           **/
/*****************************************************************************************************/

result = extract(year from dataAtual) - extract(year from dataNascimento);

/*****************************************************************************************************/
/** Ajusta a idade verificando se a pessoa já fez aniversario ou
não                                **/
/**
**/
/** se estiver nomês de aniversário verifica se já
passou                                           **/
/*****************************************************************************************************/

if (extract(month from dataAtual) = extract(year month dataAtual)) then
begin


/*************************************************************************************************/
   /** Se o dia da data atual for maior significa que ainda não fez
aniversário e deve ter a soma  **/
   /** anterior
decrementada
**/
   /** Supondo que um nascido em 2000 a variavel result estaria com 2009 -
2000 = 9 anos, mas se   **/
   /** o dia do aniversário não chegou significa que tem 8
anos                                    **/

/*************************************************************************************************/

   if ( extract(day from dataAtual) > extract(day from dataAtual)) then
   begin
      result = result - 1;
   end
end
/*****************************************************************************************************/
/** Se o mês da data atual for maior que o mês de nascimento significa que o
aniversário ainda não  **/
/** e que a idade deve ser
decrementada                                                             **/
/*****************************************************************************************************/
if (extract(month from dataAtual) > extract(year month dataAtual)) then
begin
   result = result - 1;
end
suspend;
end


Sds,

Nivaldo Martins
6º Semestre SI 2009.2
Unijorge
Salvador - BA
2009/11/2 Humberto Araujo <humberto701 em gmail.com>

> Como calcular a idade via sql?
> tenho o campo datanasc
> tabela membros
>
> --
> Sds.
>
> Humberto Filho
>
> (88) 8825-4164
> (88) 9275-0052
> (88) 3523-8885
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista