ホームページ >データベース >mysql チュートリアル >MySQL で正確な年齢差を年単位で計算するにはどうすればよいですか?
MySQL での年齢差の計算: 包括的なソリューション
データベースに保存されている個人の年齢を決定することは一般的なタスクです。ただし、従来の方法では不正確になったり、望ましくないデータ形式が発生したりすることが多いため、2 つの日付間の年の差を計算するのは困難な場合があります。
列「id」と「birth_date」を持つ「student」という名前の単純化されたテーブルがあるとします。 。」目標は、各生徒の年齢を年単位で計算することです。
最初の試みと課題
次のクエリを使用します:
select id, datediff(curdate(),birth_date) from student
we年齢差を日数で取得しますが、これは望ましい結果ではありません。 365 による除算:
select id, datediff(curdate(),birth_date) / 365 from student
は、整数ではなく浮動小数点値を生成します。最後に、計算:
select id, year(curdate())-year(birth_date) from student
誕生日が現在の日付より後に発生するため不正確になり、不正確な年齢計算が行われます。
代替ソリューション
これらの課題に対処するには、次の点を考慮してください。 query:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
TIMESTAMPDIFF() 関数を使用すると、誕生日が現在の年に該当する場合でも、年を正確に計算できます。
柔軟性を高めるには、「YEAR」を「MONTH」に置き換えます。 " または "DAY" を使用して、それぞれ月単位または日単位の差を計算します。
このソリューションは、年単位の年齢差を決定する正確かつ正確な方法を提供します。 MySQL データベースに保存されている 2 つの日付の間。
以上がMySQL で正確な年齢差を年単位で計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。