Hola
Hay varias formas de hacer eso.
Yo tengo una funcion:
CREATE FUNCTION fn_Edad (@FecNac DATETIME, @FecHoy DATETIME)
RETURNS VARCHAR(7)
AS
BEGIN
DECLARE @ANO VARCHAR(3)
DECLARE @MES VARCHAR(3)
SET @ANO = YEAR(@FecHoy) - YEAR(@FecNac)
IF MONTH(@FecNac) > MONTH(@FecHoy)
BEGIN
SET @ANO = @ANO - 1
SET @MES = 12 - (month(@FecNac) - month(@FecHoy))
END
IF MONTH(@FecNac) < MONTH(@FecHoy)
BEGIN
SET @MES = (MONTH(@FecHoy) - MONTH(@FecNac))
END
IF MONTH(@FecNac) = MONTH(@FecHoy)
BEGIN
IF DAY(@FecNac) <= DAY(@FecHoy)
BEGIN
SET @MES = 0
END
IF DAY(@FecNac) > DAY(@FecHoy)
BEGIN
SET @ANO = @ANO - 1
SET @MES = 11
END
END
RETURN RIGHT(' ' + @ANO,2) + 'a ' + RIGHT(' ' + @MES,2) + 'm'
END
Y la llamo asi:
DECLARE @FEC_NAC DATETIME
SET @FEC_NAC='19720325'
---- Edad a la fecha de hoy, de alguien que nacio el 25/03/1972
SELECT dbo.fn_Edad (@FEC_NAC,getdate())
Resultado: 36a 5m
JORGE GUILLEN CANO
Lima-Peru
MCTS - SQL 2005
"Mundo Informatico" <mundoinformat...@vocampo.com.ar> escribió en el mensaje
news:ucHdpsM%23IHA.5040@TK2MSFTNGP04.phx.gbl...
> necesito saber como calcular la edad