How to calculate age (in years) based on Date of Birth and getDate()

前端 未结 30 2498
死守一世寂寞
死守一世寂寞 2020-11-22 02:08

I have a table listing people along with their date of birth (currently a nvarchar(25))

How can I convert that to a date, and then calculate their age in years?

30条回答
  •  庸人自扰
    2020-11-22 02:22

    Try this solution:

    declare @BirthDate datetime
    declare @ToDate datetime
    
    set @BirthDate = '1/3/1990'
    set @ToDate = '1/2/2008'
    select @BirthDate [Date of Birth], @ToDate [ToDate],(case when (DatePart(mm,@ToDate) <  Datepart(mm,@BirthDate)) 
            OR (DatePart(m,@ToDate) = Datepart(m,@BirthDate) AND DatePart(dd,@ToDate) < Datepart(dd,@BirthDate))
            then (Datepart(yy, @ToDate) - Datepart(yy, @BirthDate) - 1)
            else (Datepart(yy, @ToDate) - Datepart(yy, @BirthDate))end) Age
    

提交回复
热议问题