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:
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'
SELECTDATEDIFF(Year, @FechaNacimiento, GETDATE()) - CASE
WHEN MONTH(@FechaNacimiento) > MONTH(GETDATE()) THEN 1WHEN 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
Publicar un comentario