SQL - intervalo de hora y fecha

 
Vista:

intervalo de hora y fecha

Publicado por adrilara (5 intervenciones) el 07/12/2006 11:37:56
Hola, estoy intentando encontrar la manera de encontrar si una reserva esta hecha ya en una tabla con los campos siguientes.

id , hora_inicial, hora_final , dia , servicio

Como podria saber si segun el dia de un servicio concreto si esta hecha la reserva entre un intervalo de horas.

Gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:intervalo de hora y fecha

Publicado por Liliana (426 intervenciones) el 07/12/2006 16:28:39
Hola,
No sé si entiendo la estructura de tu información, va a ser difícil manejar fechas sin meses ni años...

SELECT Reserva = CASE WHEN HoraReserva BETWEEN hora_inicial AND hora_final THEN 'Si' ELSE 'No' END
FROM MiTabla
WHERE dia = DiaReserva AND servicio = ServicioReserva

Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:intervalo de hora y fecha

Publicado por adrilara (5 intervenciones) el 08/12/2006 18:27:16
Gracias por responder.
El campo dia tiene la estructura de año,mes y dia.
No entiendo tu repuesta.
Reserva que es el nombre de un campo que no tengo.
Que tendria que hacer porque me da un resultado que siempre es 0.

ejemplo:

SELECT id_soci = CASE WHEN '18:00' BETWEEN '17:00' AND '18:30' THEN 'Si' ELSE 'No' END
FROM reserva
WHERE dia = '2005-06-21' AND nom_servei = 'tenis'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:intervalo de hora y fecha

Publicado por Liliana (426 intervenciones) el 11/12/2006 13:47:14
Hola,
Entiendo que querés saber si ya está la reserva hecha, en una fecha determinada, un servicio determinado y dentro de un rango horario.
Entonces mi respuesta anterior es lo que necesitás.
El campo Reserva es el que tiene la respuesta Si/No, según si está o no en ese rango.
En todo caso, es bueno tener la estructura de la tabla y datos de ejemplo para corroborar mi respuesta, o, simplemente, que te sirva para orientarte y encontrar tu propia solución al problema.
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:intervalo de hora y fecha

Publicado por adrilara (5 intervenciones) el 12/12/2006 20:44:49
Gracias, por tu respuesta y tu tiempo.
La estructura de la tabla es la siguiente.

CREATE TABLE `gimnas`.`reserva` (
`id_socio` INTEGER UNSIGNED NOT NULL,
`hora_inicio` VARCHAR(8) NOT NULL,
`hora_final` VARCHAR(8) NOT NULL,
`dia` varchar(10) NOT NULL,
`nom_servicio` VARCHAR(30) NOT NULL,
`coste_reserva` DECIMAL(4,2) NOT NULL,
PRIMARY KEY(`id_socio`, `hora_inicio`, `hora_final`, `dia`),
FOREIGN KEY `FK_reserva_1` (`id_socio`)
REFERENCES `socis` (`id_socio`)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY `FK_reserva_2` (`nom_servei`)
REFERENCES `serveis` (`nom_servicio`)
ON DELETE CASCADE
ON UPDATE CASCADE
)
TYPE = InnoDB;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:intervalo de hora y fecha

Publicado por Liliana (426 intervenciones) el 13/12/2006 12:12:20
Ok, entonces la primera respuesta que te di es correcta, te devolverá Si o No según esté o no reservada esa fecha con ese servicio en ese horario.
Los datos HoraReserva, DiaReserva y ServicioReserva son los ingresados por el operador para hacer la verificación.
Saludos,
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:intervalo de hora y fecha

Publicado por adrilara (5 intervenciones) el 16/12/2006 12:20:27
Lo he provado todo y me da error, haber si me explico.
Yo necesito insertar la hora inicio, hora final, dia y servicio y saber si esta hecha la reserva en ese intervalo de horas.
lo estoy intentando hacer en mysql.

Gracias por vuestra ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar