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

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

Patricia Arquette
リリース: 2025-01-09 18:22:40
オリジナル
781 人が閲覧しました

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

MySQL で 2 つの日付間の年の差を計算する方法

データベース操作では、多くの場合、2 つの日付間の時差を計算する必要があります。 MySQL には、年の差の計算など、日付の差を計算するための複数の方法が用意されています。

いくつかの例を示します:

  • 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 年

年の差を計算するには、次の簡単な式を使用できます:

<code class="language-sql">YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))</code>
ログイン後にコピー

この式は閏年を考慮しています。日付形式を減算すると、結果がその年の早い方の日付に調整されます。

たとえば、指定されたテスト ケースを使用します:

<code class="language-sql">CREATE TABLE so7749639 (date1 DATE, date2 DATE);
INSERT INTO so7749639 VALUES
('2011-07-20', '2011-07-18'),
('2011-07-20', '2010-07-20'),
('2011-06-15', '2008-04-11'),
('2011-06-11', '2001-10-11'),
('2007-07-20', '2004-07-20');
SELECT date1, date2,
YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d')) AS diff_years
FROM so7749639;</code>
ログイン後にコピー

出力結果は次のとおりです:

<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート