Stored Procedure que retorne Idade e o mês atual....
Alguém tem uma SP que retorne a Idade eo mês atua...
Exemplo: 33 anos e 9 meses
Grato
Exemplo: 33 anos e 9 meses
Grato
Walfrido
Curtidas 0
Respostas
Emerson Nascimento
23/08/2007
CREATE PROCEDURE IDADE ( nascimento date, data_base date) returns ( anos integer, meses smallint, dias smallint) as begin if (data_base is null) then data_base = current_date; anos = extract(year from data_base) - extract(year from nascimento); meses = extract(month from data_base) - extract(month from nascimento); dias = extract(day from data_base) - extract(day from nascimento); -- se quiser considerar o dia, habilite o código abaixo /* if (dias < 0) then begin dias = 30 + dias; -- valor aproximado de dias meses = meses - 1; end */ if (meses < 0) then begin meses = meses + 12; anos = anos - 1; end suspend; end
esta procedure retorna a idade a partir de uma data base. se a data base não for informada, assume o dia atual.
EXECUTE PROCEDURE IDADE(´01.06.1982´, ´01.01.2006´)
retorna que idade uma pessoa nascida em 01/Jan/1982 tinha em 01/Jan/2006
EXECUTE PROCEDURE IDADE(´01.06.1982´, null)
retorna que idade uma pessoa nascida em 01/Jan/1982 tem hoje
pode ser feito com select:
select * from IDADE(´01.06.1982´, ´01.01.2006´)
select * from IDADE(´01.06.1982´, null)
a partir do retorno da procedure você monta a string da forma que quiser. ou pode alterar o retorno de modo que já devolva a string montada.
P.S.: dependendo do uso, creio que seja melhor utilizar uma função
GOSTEI 0
Walfrido
23/08/2007
Você tem razão, é mais viável usar a função, mas agradeço pela resposta, vai ser de grande utilidade.
GOSTEI 0