Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vérifier le chevauchement des plages de dates dans MySQL

J'ai eu une telle requête avec une application de calendrier que j'ai écrite une fois. Je pense que j'ai utilisé quelque chose comme ça :

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

MISE À JOUR Cela devrait certainement fonctionner ((ns, ne, es, ee) =(new_start, new_end, existing_start, existing_end)) :

  1. ns - ne - es - ee :ne se chevauchent pas et ne correspondent pas (car ne
  2. ns - es - ne - ee :chevauchements et correspondances
  3. es - ns - ee - ne :chevauchements et correspondances
  4. es - ee - ns - ne :ne se chevauchent pas et ne correspondent pas (car ns> ee)
  5. es - ns - ne - ee :chevauchements et correspondances
  6. ns - es - ee - ne :chevauchements et correspondances

Voici un violon