首页 > 数据库 > mysql教程 > 如何计算MySQL中两个日期之间的年差?

如何计算MySQL中两个日期之间的年差?

Patricia Arquette
发布: 2025-01-09 18:22:40
原创
786 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板