Calcular Edad

01/12/2005 - 21:10 por Jorge Gómez | Informe spam
Que tal a todos,

Disculpen actualmente utilizo la siguiente función para calcular edades,

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER FUNCTION ExtraeEdad

/*

Version 1.1

*/
(@DateOfBirth datetime, @Today datetime)
RETURNS int
AS
BEGIN

DECLARE @Age int --Age in years.

SET @Age = YEAR(@Today) - YEAR(@DateOfBirth)

IF MONTH(@DateOfBirth) > MONTH(@Today)
BEGIN
SET @Age = @Age - 1
END

IF MONTH(@DateOfBirth) = MONTH(@Today)
BEGIN
IF DAY(@DateOfBirth) > DAY(@Today)
BEGIN
SET @Age = @Age - 1
END
END

RETURN (@Age)

END



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

** esta función me regresa el dato en Años, sin embargo no he logrado
diseñar una función que me mande tambien fracciones es decir, 6 meses ó 1
año 2 meses, alguién ha logrado algo como esto.

Saludos !

Jorge G.

Preguntas similare

Leer las respuestas

#1 Maxi
01/12/2005 - 21:54 | Informe spam
Hola, pregunta tonta no:

Si un año = 12 meses entonces porque no sacar la diferencia en meses y luego
dividirla por 12 ?


Salu2
Maxi [MVP SQL SERVER]


"Jorge Gómez" escribió en el mensaje
news:%
Que tal a todos,

Disculpen actualmente utilizo la siguiente función para calcular edades,

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER FUNCTION ExtraeEdad

/*

Version 1.1

*/
(@DateOfBirth datetime, @Today datetime)
RETURNS int
AS
BEGIN

DECLARE @Age int --Age in years.

SET @Age = YEAR(@Today) - YEAR(@DateOfBirth)

IF MONTH(@DateOfBirth) > MONTH(@Today)
BEGIN
SET @Age = @Age - 1
END

IF MONTH(@DateOfBirth) = MONTH(@Today)
BEGIN
IF DAY(@DateOfBirth) > DAY(@Today)
BEGIN
SET @Age = @Age - 1
END
END

RETURN (@Age)

END



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

** esta función me regresa el dato en Años, sin embargo no he logrado
diseñar una función que me mande tambien fracciones es decir, 6 meses ó 1
año 2 meses, alguién ha logrado algo como esto.

Saludos !

Jorge G.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida