Jag hade en sådan fråga med en kalenderapplikation jag skrev en gång. Jag tror att jag använde något sånt här:
... WHERE new_start < existing_end
AND new_end > existing_start;
UPPDATERA Detta borde definitivt fungera ((ns, ne, es, ee) =(ny_start, ny_slut, befintlig_start, befintlig_slut)):
- ns - ne - es - ee:överlappar inte och matchar inte (eftersom ne
- ns - es - ne - ee:överlappar och matchar
- es - ns - ee - ne:överlappningar och matchningar
- es - ee - ns - ne:överlappar inte och matchar inte (eftersom ns> ee)
- es - ns - ne - ee:överlappningar och matchningar
- ns - es - ee - ne:överlappningar och matchningar
Här är en fiol