Intervalo de horas en sql

Necesito mostrar a los profesores que ya tienen una clase programada explico
tengo tres tablas una de profesor, curso, horario
create table horario
(CodP varchar(10),
codC varchar(10),
fecha datetime,
horaingreso datetime,
hora salida datetime)
en donde en la tabla horario ya tengo un registro de clase de un profesor pos decir
insert into horario values('castilla','java','21/06/2010','08:00 am',10:00 am')
**el profesor castilla va enseñar java el 21/06/2010 a las '08:00 am' hasta las10:00 am
y necesito consultar si este profesor ya tiene este horario
pos decir algo asi
select * from horario where codP='castilla' and fecha='21/06/2010' and horaingreso=''08:00 am'  and horasalida=10:00 am'
Aquí si me muestra
pero que pasaría si coloco así
select * from horario where codP='castilla' and fecha='21/06/2010' and horaingreso=''09:00 am'  and horasalida=10:00 am'
no me muestra nada ,porque simplemente no coincide la hora ingreso.. Pero el profesor ya tiene el horario de 8 a 10 am
entonces lo coloque asi
select * from horario where codP='castilla' and fecha='21/06/2010' and horaingreso>=''08:00 am'  and horasalida<=10:00 am'
ahí si me muestra el registro insertado
pero que pasaría si coloco así
select * from horario where codP='castilla' and fecha='21/06/2010' and horaingreso>=''08:00 am'  and horasalida<=11:00 am'
o asi
select * from horario where codP='castilla' and fecha='21/06/2010' and horaingreso>=''07:00 am'  and horasalida<=10:00 am'
No me mostraría nada.. Pero es verdad que ya existe un horario para este profesor de 8 a 10 am
entonces como haría para que me respete su hora de 8 a 10 am para la fecha indicada
la idea es que: para registrar un nuevo horario de cada profesor debo fijarme primero si esta disponible en esas horas entonces como haría la consulta

2 Respuestas

Respuesta
1
Ami me parece así.
select * from horario where codP='castilla' and fecha='21/06/2010' and ((horaingreso>=''08:00 am'  and horaingreso <='10:00 am')  or ( horasalida>=''08:00 am' and horasalida<=10:00 am'))
Checale haber si te sirve...
Suerte...
Respuesta
-1
La verdad ya no me acuerdo pero puedes usar la función between para comparar rangos de horas
Seria más o menos
Campo between inicio y fin
Este post te puede ayudar
http://www.forosdelweb.com/f15/between-con-horas-tipo-14-00-a-258350/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas