ホームページ >データベース >mysql チュートリアル >MySQL で生年月日から顧客の年齢を正確に計算するにはどうすればよいですか?

MySQL で生年月日から顧客の年齢を正確に計算するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 14:32:031073ブラウズ

How Can I Accurately Calculate a Customer's Age from Their DOB in MySQL?

MySQL の生年月日から年齢を判断する

MySQL に保存されている生年月日 (DOB) に基づいて顧客の年齢を確認するにはデータベースを使用すると、年齢を正確に計算するという課題に直面します。最初は DATEDIFF(year, customer.dob, "2010-01-01") を使用する試みが思い浮かぶかもしれませんが、期待した結果が得られない可能性があります。

正確な年齢計算

この行き詰まりを克服するには、現在の年と顧客の年の間の年の差だけを考慮するだけでなく、より洗練されたアプローチが必要です。

MySQL クエリ

次の MySQL クエリは、年齢計算の複雑な詳細をキャプチャします。

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age

その様子動作:

  1. 年の差: 式 DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') は、次の差を計算します。現在の年と顧客の誕生年。
  2. 生年月日調整: 後続の項 (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) は、現在の日付の相対位置を評価します。暦年内の顧客の生年月日。生年月日が現在の日付以降の場合は、現在の年がすでに顧客の年齢に加算され始めていることを意味するため、値 1 が減算されます。

計算例

  • 1990年1月1日生まれ、現在3月15日生まれのお客様は、 2023 年の場合、クエリは 33 歳を返します。
  • 逆に、顧客の誕生日が 1990 年 7 月 1 日の場合、2023 年にはまだ 7 月 1 日が発生していないため、クエリは 32​​ 歳を返します。 2023.

結論

この包括的な MySQL クエリは、生年月日やさまざまな影響を考慮に入れることで、DOB からの正確な年齢計算に含まれる複雑な考慮事項に対応します。暦年の進行

以上がMySQL で生年月日から顧客の年齢を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。