Usuário com melhor resposta
calcular idade

Pergunta
-
bom dia pessoal
Como faço para calcular a idade Correta de uma Pessoa
Tenho Lido muitos posts aqui no forum
E o qe mais se aproximou foi este:
http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/0a5d984a-263b-482a-b6a1-cd0ed27b0a73
porem gostaria que o resultado fosse desta forma
Idade Meses Dias
45 1 03
para uma pessoa que tenha a data de nascimento '03/05/1967'
e a resposta do link acima me da a quantidade de anos vividos,
a quantidade de Meses Vividos e a Quantidade de Dias Vividos
Desta Forma
Idade Meses Dias Horas
45 541 16470 395290
se alguem puder mo ajudar
AgradeçoMaricelmo
Respostas
-
Maricelmo, bom dia.
Segue o código.
set dateformat dmy declare @data datetime, @dataDesteAno as datetime, @Ano int, @Mes int, @dia int set @data = '03/05/1967' set @dataDesteAno = cast(year(getdate()) as varchar(4)) + right('00'+cast(MONTH(@data) as varchar(2)),2)+ right('00'+cast(DAY(@data) as varchar(2)),2) set @Ano = DATEDIFF(year,@data,getdate()) set @Mes = DATEDIFF(month,@dataDesteAno,getdate()) set @Dia = DATEDIFF(day,dateadd(month,@Mes,@dataDesteAno),getdate()) select 'Quem nasceu em ' + CAST(@data as varchar(20)) + ' possui ' + CAST(@ano as varchar(4)) + ' anos, ' +CAST(@Mes as varchar(2)) + ' mês(s) e ' + CAST(@dia as varchar(2)) + ' dias.'
Abs.Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Antero Marques quarta-feira, 6 de junho de 2012 13:32
- Marcado como Resposta Maricelmo quarta-feira, 6 de junho de 2012 14:49
Todas as Respostas
-
Maricelmo, bom dia.
Segue o código.
set dateformat dmy declare @data datetime, @dataDesteAno as datetime, @Ano int, @Mes int, @dia int set @data = '03/05/1967' set @dataDesteAno = cast(year(getdate()) as varchar(4)) + right('00'+cast(MONTH(@data) as varchar(2)),2)+ right('00'+cast(DAY(@data) as varchar(2)),2) set @Ano = DATEDIFF(year,@data,getdate()) set @Mes = DATEDIFF(month,@dataDesteAno,getdate()) set @Dia = DATEDIFF(day,dateadd(month,@Mes,@dataDesteAno),getdate()) select 'Quem nasceu em ' + CAST(@data as varchar(20)) + ' possui ' + CAST(@ano as varchar(4)) + ' anos, ' +CAST(@Mes as varchar(2)) + ' mês(s) e ' + CAST(@dia as varchar(2)) + ' dias.'
Abs.Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Antero Marques quarta-feira, 6 de junho de 2012 13:32
- Marcado como Resposta Maricelmo quarta-feira, 6 de junho de 2012 14:49
-
Veja se isto te ajuda:
DECLARE @Tabela TABLE ( Nome VARCHAR(150), DataNascimento DATETIME ) INSERT INTO @Tabela (Nome,DataNascimento) VALUES ('Yuri','1967-05-03') INSERT INTO @Tabela (Nome,DataNascimento) VALUES ('Robson','1990-05-01') INSERT INTO @Tabela (Nome,DataNascimento) VALUES ('Vitor','1981-03-20') INSERT INTO @Tabela (Nome,DataNascimento) VALUES ('Julio','2011-11-15') INSERT INTO @Tabela (Nome,DataNascimento) VALUES ('Aline','1950-01-07') DECLARE @DataAtual DATETIME SET @DataAtual = GETDATE() --SELECT COM RESULTADO SELECT '' + Nome + ' tem ' + CONVERT(VARCHAR,DATEDIFF(YEAR,DataNascimento,@DataAtual)) + ' anos, viveu ' + CONVERT(VARCHAR,DATEDIFF(MONTH,DataNascimento,@DataAtual)) + ' meses, '+ CONVERT(VARCHAR,TotalSegundos / 86400) + ' dias e ' + CONVERT(VARCHAR,(TotalSegundos % 86400)) + ' horas' FROM ( SELECT Nome, DataNascimento, DATEDIFF(SECOND,DataNascimento,@DataAtual) TotalSegundos FROM @Tabela ) Agrr
Resultado:
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Editado Vitor Mendes quarta-feira, 6 de junho de 2012 13:21