 
			
				27/01/2009, 09:21
			
			
			     |  
        |     |    |    Fecha de Ingreso: julio-2005  Ubicación: Jaltenco / DF  
						Mensajes: 1.723
					  Antigüedad: 20 años, 3 meses Puntos: 50     |        |  
  |      Función para el cálculo de la edad        Estimados (que dijeron ando preguntando no?... jaja) no, aquí les dejo una función para calcular la edad con los días transcurridos, igual y si ya se encontraba una pues ya ni modo, aquí la dejo.    
Código:
  create function edad(@nacimiento as datetime)
returns varchar(25)
as 
begin
declare @aYear varchar(3)
declare @diasTranscurridos varchar(3)
set @aYear = year(getdate()) - year(@nacimiento)
if month(getdate()) < month(@nacimiento)
	begin
		set @aYear = @aYear - 1 
		set @diasTranscurridos = datediff(day,convert(varchar,year(getdate())) + '/01/01',getdate())+1
		set @diasTranscurridos = 365 - @diasTranscurridos
	end
else
	begin
		if month(getdate()) > month(@nacimiento)
			begin
				set @diasTranscurridos = datediff(day,convert(varchar,year(getdate())) + '/01/01',getdate())+1
			end
		else
			begin
				if month(getdate()) = month(@nacimiento)
					begin
						if day(getdate()) = day(@nacimiento)
							begin
								set @aDia = 0
							end
						else
							begin
								if day(getdate()) < day(@nacimiento)
									begin
										set @aYear = @aYear - 1 
										set @diasTranscurridos = datediff(day,convert(varchar,year(getdate()) - 1) + '/01/01',convert(varchar,year(getdate()) - 1) + '/31/12') - (datediff(day,convert(varchar,year(getdate())) + '/' + convert(varchar,month(getdate())) + '/01',getdate()) + 1)
									end
								else
									begin 
										if day(getdate()) > day(@nacimiento)
											begin 
												set @diasTranscurridos = datediff(day,convert(varchar,year(getdate())) + '/' + convert(varchar,month(getdate())) + '/01',getdate())+1
											end
									end
							end
					end
			end
	end
return @aYear + ' años ' + @diasTranscurridos + ' días'
end
         
				__________________  Mejoremos nuestro país, ayudemos al planeta... próximamente.           |