Mysql
 sql >> Database >  >> RDS >> Mysql

Controlla la sovrapposizione degli intervalli di date in MySQL

Ho avuto una domanda del genere con un'applicazione di calendario che ho scritto una volta. Penso di aver usato qualcosa del genere:

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

AGGIORNAMENTO Questo dovrebbe sicuramente funzionare ((ns, ne, es, ee) =(nuovo_inizio, nuova_fine, esistente_inizio, esistente_fine)):

  1. ns - ne - es - ee:non si sovrappone e non corrisponde (perché ne
  2. ns - es - ne - ee:sovrapposizioni e corrispondenze
  3. es - ns - ee - ne:sovrapposizioni e corrispondenze
  4. es - ee - ns - ne:non si sovrappone e non corrisponde (perché ns> ee)
  5. es - ns - ne - ee:sovrapposizioni e corrispondenze
  6. ns - es - ee - ne:sovrapposizioni e corrispondenze

Ecco un violino