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

Determinar a lógica para MySQL Select - Sistema de Reservas


Não tenho 100% de certeza sobre isso, mas acho que essa consulta deve ser bem próxima:
select * from tblEvents
where (@starttime >= start && @starttime <= end) /* Starts while someone else has it */
or (@endtime >= start && @endtime <= end) /* Ends while someone else has it */
or (@startime <= start && @endtime >= end) /* Starts before & ends after someone else has it*/
and equipID = @equipID

Substitua @starttime, @endtime &@equipID pelo ID do equipamento apropriado e os horários de início e término inseridos pelo usuário. Se essa consulta não retornar resultados, não deve haver conflitos de tempo.

Basicamente, está verificando esses 3 cenários, onde o *é seu horário de início e término, o - é o tempo não utilizado e o | é hora de ser usado por outra pessoa:
-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------