Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Überprüfen Sie die Überschneidung von Datumsbereichen in MySQL

Ich hatte eine solche Abfrage mit einer Kalenderanwendung, die ich einmal geschrieben habe. Ich glaube, ich habe so etwas verwendet:

... WHERE new_start < existing_end
      AND new_end   > existing_start;

AKTUALISIEREN Das sollte auf jeden Fall funktionieren ((ns, ne, es, ee) =(neuer_start, neues_ende, bestehender_start, bestehender_ende)):

  1. ns - ne - es - ee:überschneidet sich nicht und stimmt nicht überein (weil ne
  2. ns - es - ne - ee:Überschneidungen und Übereinstimmungen
  3. es - ns - ee - ne:Überschneidungen und Übereinstimmungen
  4. es - ee - ns - ne:überschneidet sich nicht und stimmt nicht überein (weil ns> ee)
  5. es - ns - ne - ee:Überschneidungen und Übereinstimmungen
  6. ns - es - ee - ne:Überschneidungen und Übereinstimmungen

Hier ist eine Geige