• DECLARE @test-2 TABLE (

    EmpName VARCHAR(40) ,

    BirthDate DATE

    );

    INSERT INTO @test-2 ( EmpName , BirthDate

    )

    VALUES ( '30 Yrs old yesterday' , DATEADD(day , -1 , DATEADD(year , -30 , GETDATE()))

    ) , ( '30 Yrs old today' , DATEADD(year , -30 , GETDATE())

    ) , ( '30 Yrs old tomorrow' , DATEADD(day , 1 , DATEADD(year , -30 , GETDATE()))

    );

    SELECT EmpName , BirthDate ,

    CASE

    WHEN DATEADD(YY , DATEDIFF(yy , BirthDate , GETDATE()) , BirthDate) < GETDATE()

    THEN DATEDIFF(yy , BirthDate , GETDATE())

    ELSE DATEDIFF(yy , BirthDate , GETDATE()) - 1

    END AS Age

    FROM @test-2;