データベース内の人の年齢を計算しようとしています。
この単純なテーブルがあるとしましょう:
student(id, birth_date);
ここで、idは主キーです(実際、テーブルはより複雑ですが、私はそれを単純化しました)。
独身者の年齢を知りたい:
select id, datediff(curdate(),birth_date)
from student
しかし、結果は数年ではなく数日で返されます。365で割ることができます。
select id, datediff(curdate(),birth_date) / 365
from student
しかし、それは浮動小数点値を返すので、整数が必要です。
だから私は年を計算することができました:
select id, year(curdate())-year(birth_date)
from student
しかし、問題があります。たとえば、今は5月です。たとえば、1970年6月に生まれた人の戦争の場合、彼はまだ31歳で、32歳ではありませんが、表現は32
を返します。この問題から抜け出すことはできません。誰かが私を助けてくれますか? ?