首頁 > 資料庫 > mysql教程 > 如何計算MySQL中兩個日期之間的年差?

如何計算MySQL中兩個日期之間的年差?

Patricia Arquette
發布: 2025-01-09 18:22:40
原創
781 人瀏覽過

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

MySQL 中計算兩個日期之間年份差的方法

在資料庫操作中,經常需要計算兩個日期之間的時間差。 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 中兩個日期之間的年份差。

以上是如何計算MySQL中兩個日期之間的年差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板