Anuncios

IT Certification Category (Spanish)468x60

viernes, 6 de enero de 2012

Obtener la edad de una persona con SQL Server

En este artículo veremos la forma de como obtener la edad de una persona en SQL Server.

Creamos una función escalar, si deseamos, que reciba como parámetro la fecha de nacimiento de la persona a la cual queremos calcular la edad. Esto lo hacemos con el siguiente código:

Create Function [dbo].[RetornaEdad](@FechaNacimiento datetime)
Returns Int
Begin

Declare @Edad int;


Set @Edad =
(SELECT
DATEDIFF(Year, @FechaNacimiento, GETDATE()) - CASE
WHEN MONTH(@FechaNacimiento) > MONTH(GETDATE()) THEN 1
WHEN MONTH(@FechaNacimiento) = MONTH(GETDATE()) AND DAY(@FechaNacimiento) > DAY(GETDATE()) THEN 1
ELSE 0 END
)
Return @Edad;

End


Para invocar utilizamos el siguiente código:
Select [dbo].[RetornaEdad]('1990-04-04') As Edad



En este ejemplo el resultado debe ser 20.


Con esta función podemos retornar el resultado de la edad de cualquier persona, en caso de que no se quiera hacer uso de una función podemos obtener el resultado del siguiente código:

Declare @FechaNacimiento datetime  Set @FechaNacimiento = '1990-04-04'

SELECT
DATEDIFF(Year, @FechaNacimiento, GETDATE()) - CASE
WHEN MONTH(@FechaNacimiento) > MONTH(GETDATE()) THEN 1
WHEN MONTH(@FechaNacimiento) = MONTH(GETDATE()) AND DAY(@FechaNacimiento) > DAY(GETDATE()) THEN 1ELSE 0

END AS Edad

 Con esto obtenemos el mismo resultado que nos muestra la función.

Publicado por: Willy Taveras

People who read this post also read :