Heim >Datenbank >MySQL-Tutorial >Wie erkennt man überlappende Datumsbereiche in MySQL?

Wie erkennt man überlappende Datumsbereiche in MySQL?

DDD
DDDOriginal
2024-12-13 15:28:11907Durchsuche

How to Detect Overlapping Date Ranges in MySQL?

Bestimmen überlappender Datumsbereiche in MySQL

Um widersprüchliche Datumsbereiche innerhalb einer bestimmten Tabelle zu ermitteln, ziehen Sie eine maßgeschneiderte Abfrage in Betracht, die die folgenden Kriterien verwendet:

WHERE new_start < existing_end AND new_end > existing_start

wo:

  • new_start und new_end stellt den Datumsbereich der neuen Sitzung dar, die eingefügt werden soll
  • existing_start und previous_end stellen den Datumsbereich vorhandener Sitzungen dar

Diese Abfrage identifiziert effektiv Datumsbereiche, die sich mit der vorgeschlagenen neuen Sitzung überschneiden , was im Vergleich zur ursprünglichen Abfrage ein verfeinertes Ergebnis liefert.

Hier ist eine aktualisierte Version von Abfrage:

SELECT *
FROM session
WHERE "2010-01-05" < end_date AND "2010-01-25" > start_date;

Diese Abfrage gibt nur widersprüchliche Sitzungen zurück und lässt nicht überlappende Sitzungen aus:

+----+------------+------------+
| id | start_date | end_date   |
+----+------------+------------+
|  2 | 2010-01-20 | 2010-01-30 |
+----+------------+------------+

Die überarbeitete Abfrage stellt sicher, dass nur überlappende Sitzungen identifiziert werden, was ein genaueres Ergebnis liefert Konflikterkennung.

Das obige ist der detaillierte Inhalt vonWie erkennt man überlappende Datumsbereiche in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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