MySQL で年齢を整数として計算する
MySQL データベースに保存されている生年月日に基づいて個人の年齢を決定する場合、 DATEDIFF() 関数によって提供される日数の差は、正確な整数表現を提供するには至っていません。この課題を克服するには、複数のステップからなるアプローチが必要です。ステップ 1: 年を計算する式 YEAR(CURDATE()) - YEAR(birth_date)現在の日付と生年月日の間の年の差が得られます。ただし、このアプローチでは不完全な年数は考慮されません。たとえば、現在の日付が 5 月で、誕生日が 6 月の場合、その人の年齢はまだ 31 歳です。
ステップ 2: 不完全な年を修正する宛先不完全な年の問題については、次のサブクエリを使用できます:
このサブクエリは、閏年を考慮して、個人の誕生日から経過した年数と日数を計算します。(SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
年齢を整数として計算する最後の式は次のとおりです:
この式では、完全な年数から不完全な年が減算され、結果は次のようになります。個人の年齢を表す整数で表します。(YEAR(CURDATE()) - YEAR(birth_date)) - (SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
MySQL で年齢を整数として計算する別のオプションは、TIMESTAMPDIFF() 関数を使用することです。
この関数は、2 つのタイムスタンプ間の年の差を直接計算し、複雑な計算の必要性を回避します。また、YEAR を MONTH または DAY に置き換えて、月または日の差を計算するために使用することもできます。SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
以上がMySQL で年齢を整数として正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。