Con esta simple función podremos saber la edad en años a partir de la fecha de nacimiento:
Select dbo.GetEdad('19810522')
-----------
30
(1 row(s) affected)
Script:
CREATE function dbo.GetEdad
(
@FechaNacimiento DATETIME
)
RETURNS int
Begin
declare @edad integer
if (@FechaNacimiento is null or @FechaNacimiento = '' )
set @edad = 0
else
if (month(getdate()) > month(@FechaNacimiento))
set @edad = DateDiff(yyyy,@FechaNacimiento,getdate())
else
if (month(getdate()) = month(@FechaNacimiento)
AND day(getdate()) >= day(@FechaNacimiento))
set @edad = DateDiff(yyyy,@FechaNacimiento,getdate())
else
set @edad = DateDiff(yyyy,@FechaNacimiento,getdate()) -1
Return @edad
End