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

前端 未结 30 2609
死守一世寂寞
死守一世寂寞 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:42

    CASE WHEN datepart(MM, getdate()) < datepart(MM, BIRTHDATE) THEN ((datepart(YYYY, getdate()) - datepart(YYYY, BIRTH_DATE)) -1 )
         ELSE 
            CASE WHEN datepart(MM, getdate()) = datepart(MM, BIRTHDATE)
                THEN 
                    CASE WHEN datepart(DD, getdate()) < datepart(DD, BIRTHDATE) THEN ((datepart(YYYY, getdate()) - datepart(YYYY, BIRTHDATE)) -1 )
                        ELSE (datepart(YYYY, getdate()) - datepart(YYYY, BIRTHDATE))
                    END
            ELSE (datepart(YYYY, getdate()) - datepart(YYYY, BIRTHDATE)) END            
        END
    

提交回复
热议问题