lunes, 1 de agosto de 2011

Función SQL para obtener la edad de una persona

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