Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Jahresdifferenz zwischen zwei Datumsangaben in MySQL genau?

Wie berechnet man die Jahresdifferenz zwischen zwei Datumsangaben in MySQL genau?

DDD
Freigeben: 2025-01-09 18:39:41
Original
533 Leute haben es durchsucht

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

Berechnung von Jahresunterschieden zwischen Datumsangaben in MySQL

Diese Anleitung zeigt eine genaue Methode zur Berechnung der Jahresdifferenz zwischen zwei Datumsangaben in einer MySQL-Datenbank. Der folgende SQL-Ausdruck bietet eine genaue Berechnung und berücksichtigt mögliche Komplexitäten von Schaltjahren:

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

Dieser Ausdruck funktioniert wie folgt:

  1. Jahresdifferenz: YEAR(date1) - YEAR(date2) berechnet die anfängliche Jahresdifferenz.

  2. Monat/Tag-Vergleich: DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d') vergleicht die Monats- und Tageskomponenten beider Datumsangaben. Dieser Vergleich bestimmt, ob date1 früher im Jahr fällt als date2.

  3. Schaltjahranpassung: MySQL interpretiert das Vergleichsergebnis als 1 (wahr) oder 0 (falsch). Das Subtrahieren dieses Ergebnisses von der ursprünglichen Jahresdifferenz gewährleistet eine genaue Berechnung und berücksichtigt Fälle, in denen date1 chronologisch früher im selben Jahr liegt als date2.

Beispiel:

Lassen Sie uns anhand von Beispieldaten veranschaulichen:

<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');</code>
Nach dem Login kopieren

Die Abfrage:

<code class="language-sql">SELECT date1, date2,
YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d')) AS diff_years
FROM so7749639;</code>
Nach dem Login kopieren

Ergibt die korrekten Jahresdifferenzen:

<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>
Nach dem Login kopieren

Dieser Ansatz garantiert genaue Berechnungen der Jahresdifferenz, unabhängig von den jeweiligen Daten.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Jahresdifferenz zwischen zwei Datumsangaben in MySQL genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage