Hay dos formas de resolverlo:
1) Eliminas las que no están comprendidas en el horario diurno:
2) Consideras los segmentos separadamente:
El tema pasa por no ahogarse y tratar de razonarlo por partes...
En cualquier caso, esto me parece que es mejor resolverlo en un stored procedure, a menos que quieras manejar la decisión de la consulta en PHP...