ホームページ >データベース >mysql チュートリアル >MySQL で 2 つの日付間の年の差を正確に計算するにはどうすればよいですか?
チャレンジ:
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 の場合、年の差がすでに計算されている場合でも、date1
が date2
よりも早く発生することを意味します。比較のブール結果 (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 サイトの他の関連記事を参照してください。