• mdsharif532 (1/10/2013)


    How about this..............

    DECLARE @BIRTH_DATE DATETIME, @STPR_START_DATE DATETIME

    SET @BIRTH_DATE = '2008-02-29'

    SET @STPR_START_DATE = '2013-02-28'

    SELECT CASE WHEN YEAR(@STPR_START_DATE)%400 != 0 AND DAY(@STPR_START_DATE)= 28 THEN

    DATEDIFF(YEAR, @BIRTH_DATE, @STPR_START_DATE) - CASE WHEN MONTH(@BIRTH_DATE)*100 + (DAY(@BIRTH_DATE) -1) > MONTH(@STPR_START_DATE)*100 + DAY(@STPR_START_DATE) THEN 1 ELSE 0 END

    ELSE

    DATEDIFF(YEAR, @BIRTH_DATE, @STPR_START_DATE) - CASE WHEN MONTH(@BIRTH_DATE)*100 + DAY(@BIRTH_DATE) > MONTH(@STPR_START_DATE)*100 + DAY(@STPR_START_DATE) THEN 1 ELSE 0 END

    END AS AGE

    A lot of extra work for what can be done easily with a couple of datetime functions and a case statement.