我想要計算數據庫中某個人的年齡。
讓我們假設有這樣簡單的表:獲取MySQL中兩個日期之間的年差作爲整數
student(id, birth_date);
其中ID是主鍵(真正的表是比較複雜的,但我已經簡化了的話)。
我想多少舊是一個人:
select id, datediff(curdate(),birth_date)
from student
但它在天返回結果,而不是years.I可以通過365將其劃分:
select id, datediff(curdate(),birth_date)/365
from student
但返回一個浮點值,我想要一個整數。
所以,我可以計算出年:
select id, year(curdate())-year(birth_date)
from student
但有一個問題:比如現在是五月,如果6月出生,1970年一個人的戰爭,他仍然具有31年,而不是32,但表達的回報32.
我不能出這個問題,有人可以幫我嗎?
這十進制沒有考慮閏年考慮在內。漂移可以變得顯着。 '選擇樓層(datediff(「2017-03-19」,「1975-03-30」)/ 365);'說42. 42.這個人41天,11天休息。 – Schwern
同意@Schwern – shrimpwagon