[RESOLVIDO] SQL de verificação de datas

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.

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]