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

Comentarios

Entradas populares de este blog

The Deep Sea: una web interactiva para explorar las profundidades el mar y descubrir las extrañas criaturas que viven en él

Detectar el usuario de Windows utilizando C#

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005