ホームページ >データベース >mysql チュートリアル >MySQL で 2 つの日付間の年の差を正確に計算するにはどうすればよいですか?

MySQL で 2 つの日付間の年の差を正確に計算するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-09 18:37:48516ブラウズ

How to Accurately Calculate the Difference in Years Between Two Dates in MySQL?

MySQL での日付間の年の差を正確に決定する

チャレンジ:

MySQL データベース内の 2 つの日付間の年の差を正確に計算し、閏年を正しく処理し、一貫した結果を保証します。

MySQL ソリューション:

<code class="language-sql">YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))</code>

詳細な内訳:

  • YEAR(date1) - YEAR(date2): 2 つの入力日付間の生の差を年単位で計算します。
  • (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d')): この部分は、date1 の月と日が date2 の月と日よりも前であるかどうかを確認します。 true の場合、年の差がすでに計算されている場合でも、date1date2 よりも早く発生することを意味します。

比較のブール結果 (TRUE/FALSE) は暗黙的に整数 (TRUE の場合は 1、FALSE の場合は 0) に変換されます。その後、この整数が最初の年の差から減算され、正確な年が数えられるようになります。

例:

次の表は、このメソッドの精度を示しています。

<code>+------------+------------+------------+
| date1      | date2      | diff_years |
+------------+------------+------------+
| 2011-07-20 | 2011-07-18 |          0 |
| 2011-07-20 | 2010-07-20 |          1 |
| 2011-06-15 | 2008-04-11 |          3 |
| 2011-06-11 | 2001-10-11 |          9 |
| 2007-07-20 | 2004-07-20 |          3 |
+------------+------------+------------+</code>

概要:

この簡潔な MySQL 式は、2 つの日付間の年の差を計算し、うるう年を細心の注意を払って計算し、さまざまな日付シナリオ全体で一貫性を維持するための信頼性が高く正確な方法を提供します。

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

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