Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Verifique a sobreposição de intervalos de datas no MySQL


Eu tive essa consulta com um aplicativo de calendário que escrevi uma vez. Acho que usei algo assim:
... WHERE new_start < existing_end
      AND new_end   > existing_start;

ATUALIZAÇÃO Isso definitivamente deve funcionar ((ns, ne, es, ee) =(new_start, new_end, existing_start, existing_end)):
  1. ns - ne - es - ee:não se sobrepõe e não corresponde (porque ne
  2. ns - es - ne - ee:sobreposições e correspondências
  3. es - ns - ee - ne:sobreposições e correspondências
  4. es - ee - ns - ne:não se sobrepõe e não corresponde (porque ns> ee)
  5. es - ns - ne - ee:sobreposições e correspondências
  6. ns - es - ee - ne:sobreposições e correspondências

Aqui está um violino