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

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

Linda Hamilton
Libérer: 2025-01-09 18:37:48
original
515 Les gens l'ont consulté

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

Déterminer avec précision la différence d'année entre les dates dans MySQL

Défi :

Calculez avec précision la différence en années entre deux dates dans une base de données MySQL, en gérant correctement les années bissextiles et en garantissant des résultats cohérents.

Solution MySQL :

<code class="language-sql">YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))</code>
Copier après la connexion

Répartition détaillée :

  • YEAR(date1) - YEAR(date2) : Calcule la différence brute en années entre les deux dates de saisie.
  • (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d')) : Cette partie vérifie si le mois et le jour de date1 précèdent ceux de date2. Si c'est vrai, cela signifie que date1 tombe plus tôt dans l'année que date2, même si la différence d'année est déjà calculée.

Le résultat booléen (VRAI/FAUX) de la comparaison est implicitement converti en un entier (1 pour VRAI, 0 pour FAUX). Cet entier est ensuite soustrait de la différence d'année initiale, garantissant un décompte précis des années.

Exemples illustratifs :

Le tableau suivant démontre l'exactitude de la méthode :

<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>
Copier après la connexion

Résumé :

Cette expression MySQL concise fournit une méthode fiable et précise pour calculer la différence en années entre deux dates, en tenant compte méticuleusement des années bissextiles et en maintenant la cohérence entre différents scénarios de dates.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal