sql >> Database >  >> RDS >> Mysql

Controleer overlap van datumbereiken in MySQL

Ik had zo'n vraag met een agenda-applicatie die ik ooit schreef. Ik denk dat ik zoiets als dit heb gebruikt:

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

UPDATE Dit zou zeker moeten werken ((ns, ne, es, ee) =(new_start, new_end, bestaande_start, bestaande_end)):

  1. ns - ne - es - ee:overlapt niet en komt niet overeen (omdat ne
  2. ns - es - ne - ee:overlapt en komt overeen
  3. es - ns - ee - ne:overlapt en komt overeen
  4. es - ee - ns - ne:overlapt niet en komt niet overeen (omdat ns> ee)
  5. es - ns - ne - ee:overlapt en komt overeen
  6. ns - es - ee - ne:overlapt en komt overeen

Hier is een viool



  1. Wat zijn de stappen bij het ontwerpen van databases?

  2. Knip alle tabellen in een database in SQL Server af - SQL Server / TSQL-zelfstudie, deel 55

  3. SQL Kiezen uit twee tabellen met inner join en limit

  4. SQL Server ongebruikte index