Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Calcular Idade


Pompeu

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Pompeu' !

Veja o presente!

DELIMITER $$;

DROP FUNCTION IF EXISTS `sase`.`Calcula_Idade`$$

CREATE FUNCTION `sase`.`Calcula_Idade` (vData_Nasc date)
    RETURNS integer
BEGIN
   DECLARE vIdade integer unsigned default 0;
   DECLARE vAno_Nasc integer unsigned default 0;
   DECLARE vAno_Hoje integer unsigned default 0;
   DECLARE vMes_Nasc integer unsigned default 0;
   DECLARE vMes_Hoje integer unsigned default 0;
   DECLARE vDia_Nasc integer unsigned default 0;
   DECLARE vDia_Hoje integer unsigned default 0;
   SET vAno_Nasc = EXTRACT(YEAR FROM vData_Nasc);
   SET vAno_Hoje = EXTRACT(YEAR FROM NOW());
   SET vMes_Nasc = EXTRACT(MONTH FROM vData_Nasc);
   SET vMes_Hoje = EXTRACT(MONTH FROM NOW());
   SET vDia_Nasc = EXTRACT(DAY FROM vData_Nasc);
   SET vDia_Hoje = EXTRACT(DAY FROM NOW());
   SET vIdade = vAno_Hoje - vAno_Nasc;
   IF  vMes_Hoje < vMes_Nasc THEN
       SET vIdade = vIdade - 1;
   ELSE
      IF vMes_Hoje = vMes_Nasc THEN
         IF vDia_Hoje < vDia_Nasc THEN
            SET vIdade = vIdade - 1;
         END IF;
      END IF;
   END IF;
   RETURN vIdade;
END$$

DELIMITER;$$
Para usar :
select calcula_idade('2000-08-04');

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...