Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/12/2011, 04:01
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Consulta Between

Ahora te has explicado mejor, se trata de un sistema de reservas... no lo puedes hacer directamente comparando las dos horas, divide y venceras, puesto que te interesa que te retorne cosas que no estan completamente en el periodo buscado...

Código MySQL:
Ver original
  1. SELECT salon FROM tuTablaReservas
  2. WHERE hrf>'10:00:00' AND hrf<='23:00:00'
  3. SELECT salon FROM tuTablaReservas
  4. WHERE hri>='10:00:00' AND hri<'23:00:00';

La primera query dará los salones 1 y 2 de tu ejemplo, y la segunda el 3.

Resuelto!!!

Ricemos el rizo

Código MySQL:
Ver original
  1. SELECT s.salon FROM tuTablaSalones s
  2. WHERE s.salon NOT IN (SELECT r1.salon FROM tuTablaReservas r1
  3.                 WHERE r1.hrf>'10:00:00' AND r1.hrf<='23:00:00'
  4.                 UNION DISTINCT
  5.                 SELECT r2.salon FROM tuTablaReservas r2
  6.                 WHERE r2.hri>='10:00:00' AND r2.hri<'23:00:00');

Te dará los salones totalmente libres en el perido buscado.

Un OR con los parentesis adecuados tambien lo resuelve...

Código MySQL:
Ver original
  1. SELECT salon FROM tuTablaReservas
  2. WHERE (hrf>'10:00:00' AND hrf<='23:00:00') OR (hri>='10:00:00' AND hri<'23:00:00');

Resumiendo se trata de obtener los salones que tengan la hrf o la hri dentro del periodo buscado...

Visto asi tambien lo podrias hacer con BETWEEN, lo dejo para que lo hagas tu.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 30/12/2011 a las 07:15 Razón: Habia un error