Home Forums SQL Server 7,2000 T-SQL How can we calculate Age of employee? RE: How can we calculate Age of employee?

  • Should be really way simpler

    SELECT

    dob,

    [day],

    DATEDIFF(yy, 0, [day] - dob) Years,

    DATEDIFF(MM, 0, [day] - dob)%12 Months,

    DATEDIFF(dd, DATEADD(mm, DATEDIFF(mm, 0, [day] - dob), 0), [day] - dob) days

    FROM (

    SELECT [day] = CONVERT(datetime, '1992-07-07', 120), dob = CONVERT(datetime, '1927-04-24', 120) UNION ALL -- 65

    SELECT [day] = '2000-06-06', dob = '1915-01-31' UNION ALL -- 85

    SELECT [day] = '2003-12-15', dob = '1923-06-22' UNION ALL -- 80

    SELECT [day] = '2002-03-22', dob = '1917-01-24' UNION ALL -- 85

    SELECT [day] = '2008-02-28', dob = '2007-03-01' -- 0

    ) d

    or even more simple:

    SELECT

    dob,

    [day],

    YEAR([day] - dob)-1900 Years,

    MONTH([day] - dob)-1 Months,

    DAY([day] - dob)-1 days

    FROM (

    SELECT [day] = CONVERT(datetime, '1992-07-07', 120), dob = CONVERT(datetime, '1927-04-24', 120) UNION ALL -- 65

    SELECT [day] = '2000-06-06', dob = '1915-01-31' UNION ALL -- 85

    SELECT [day] = '2003-12-15', dob = '1923-06-22' UNION ALL -- 80

    SELECT [day] = '2002-03-22', dob = '1917-01-24' UNION ALL -- 85

    SELECT [day] = '2008-02-28', dob = '2007-03-01' -- 0

    ) d

    ([day] - dob) gives you the age in seconds (milliseconds if you wish), and then you simply figure out YEAR, MONTH and DAY of that value.

    _____________
    Code for TallyGenerator