Maison >base de données >tutoriel mysql >Comment calculer la différence d'années entre deux dates dans MySQL ?

Comment calculer la différence d'années entre deux dates dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-09 18:22:40786parcourir

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

Comment calculer la différence d'année entre deux dates dans MySQL

Dans les opérations de base de données, il est souvent nécessaire de calculer le décalage horaire entre deux dates. MySQL propose plusieurs méthodes pour calculer les différences de date, y compris le calcul des différences d'année.

Voici quelques exemples :

  • 20/07/2011 - 18/07/2011 => 0 ans
  • 20/07/2011 - 20/07/2010 => 1 an
  • 2011-06-15 - 2008-04-11 => 3 ans
  • 2011-06-11 - 2001-10-11 => 9 ans

Pour calculer la différence d'année, vous pouvez utiliser l'expression simple suivante :

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

Cette expression prend en compte les années bissextiles. La soustraction des formats de date garantit que le résultat est ajusté à la date antérieure de l'année.

Par exemple, en utilisant le scénario de test donné :

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

Les résultats de sortie sont les suivants :

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

Ainsi, en utilisant cette expression, vous pouvez effectivement obtenir la différence d'année entre deux dates dans MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn