sql >> Base de Datos >  >> RDS >> Mysql

Determine la lógica para MySQL Select - Sistema de reservas

No estoy 100% seguro de esto, pero creo que esta consulta debería ser bastante cercana:

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

Reemplace @starttime, @endtime y @equipID con la identificación del equipo adecuada y las horas de inicio y finalización ingresadas por el usuario. Si esta consulta no arroja resultados, entonces no debería haber conflictos de tiempo.

Básicamente, está verificando estos 3 escenarios, donde *es su hora de inicio y finalización, el - es el tiempo sin usar y el | es hora de que lo use otra persona:

-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------