couta
#1
E aiii galera,
to com um problema…
Seguinte…
tenho um sistema que faz reservas de salas, preciso antes de fazer a reserva, verificar se não tem alguma reserva durante o periodo solicitado!!
por exemplo, uma sala já ta reserva das 14:00 as 17:00 do dia 17/11/2011
então nosso posso reservar essa sala em nenhum horario que entre nesse periodo. como por exemplo das 09:00 as 15:00… 09:00 as 18:00… 15:00 as 16:30
alguem pode me ajudar nessa SQL??
TO USANDO O MYSQL
OBRIGADO
Cara no Oracle eu uso o exemplo abaixo. Trocando os 0’s pelo valor que você quer.
select ...
from ... tb
where tb.coluna >= to_date('00/00/0000 000000', 'dd/mm/yyyy hh24miss') and
tb.coluna <= to_date('00/00/0000 000000', 'dd/mm/yyyy hh24miss')
Flw
Por favor, não poste tópicos usando somente letras maiúsculas no título.
Acredito que a query abaixo possa te ajudar nessa validação:
select *
from
reservas r
where
not ((r.fim < p_ini ) or (r.ini > p_fim ))
Onde: p_ini e p_fim é o início e o fim da tentativa de reserva.
Note que esse select dará um péssimo plano de execução.
Dependendo da quantidade de registros porém, pode ser aceitável.
Dá uma olhada neste artigo que explica bem o seu problema e uma sugestão de solução para Oracle:
http://www.orafaq.com/node/2067
As vezes o mysql tem alguma função semelhante.
couta
#5
cara… era isso que eu precisava, mto obrigado…
RESOLVIDO O PROBLEMA…
[quote=AbelBueno]Acredito que a query abaixo possa te ajudar nessa validação:
select *
from
reservas r
where
not ((r.fim < p_ini ) or (r.ini > p_fim ))
Onde: p_ini e p_fim é o início e o fim da tentativa de reserva.
Note que esse select dará um péssimo plano de execução.
Dependendo da quantidade de registros porém, pode ser aceitável.
Dá uma olhada neste artigo que explica bem o seu problema e uma sugestão de solução para Oracle:
http://www.orafaq.com/node/2067
As vezes o mysql tem alguma função semelhante.
[/quote]