【SQL】MSSQL計算年齡

在工作上遇到要計算年齡

原本想說簡單使用 DATEDIFF 函式就可以解決

但.......

接收到需求第一個反應就覺得很簡單

立即寫出

DECLARE @Birthday DATETIME = '1999-10-11'
SELECT DATEDIFF(YEAR,@Birthday,GETDATE())

但....執行起來有問題

因為假如今天是 2017/10/10   我的生日是 1999/10/11

我的年齡理當是17歲,但執行結果是18歲

這是為啥?

因為我使用的DateDiff是year 所以他是比較[年]

 

拜請google大神 找到有高手使用以下語法來解決,簡單又明瞭

DECLARE @Birthday DATETIME = '1999-10-11'
SELECT FLOOR(DATEDIFF(DY,@Birthday,GETDATE())/365.25)

 

參考連結


如果本文對您幫助很大,可街口支付斗內鼓勵石頭^^