Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sandler Riot

Problema com logica em argumentos SQL

Recommended Posts

Olá galera. Estou com um problema que não consigo solucionar, creio que seja "simples" pra quem já passou por algo do tipo. Mas infelizmente, estou parado no desenvolvimento por conta desta logica.

 

Situação

 

Estou desenvolvendo sistema para uma imobiliaria. O qual trabalha com resevas. Onde preciso fazer uma filtragem na busca de reservas.

 

Toda reserva, tem uma DATA_ENTRADA e uma DATA_SAIDA, contida na tabela RESERVAS do banco do sistema.

 

O usuário do sistema vai fazer uma busca. Entra com uma data_entrada e uma data_saida, envia a consulta e o banco deve retornar se tem ou não algo disponivel naquele espaço de tempo.

 

Ex:

 

Boto para buscar a data:

 

Entrada: 2007-10-01

Saida: 2007-10-20

 

O sistema deve consultar se do dia 01 ao 20, esta com alguma reserva neste periodo. Se este tempo de espaço estiver liberado, beleza. Ele permite nova reserva.

 

Não consegui que isso seja 100% funcional ainda. Fazer esta comparação de datas no SQL para retornar as datas liberadas.

 

Estou usando da seguinte forma:

 

SELECT *FROM reservasWHERE data_entrada AND data_saida BETWEEN '2007-09-01' AND '2007-10-19' and data_entrada >= '2007-09-01' or data_saida >= '2007-10-19'
"Funciona" mas não com todas as possibilidades. Esta comparando com 1 unica data no banco. E quando se bota muitas datas ele não permite.

 

Alguem que ja fez algo do tipo poderia dar alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem...

 

data_entrada AND data_saida BETWEEN '2007-09-01' AND '2007-10-19'

Não é o mesmo que:

 

data_entrada  BETWEEN '2007-09-01' AND '2007-10-19' AND data_saida BETWEEN '2007-09-01' AND '2007-10-19'

Se essa foi a intenção.

 

 

E coloque entre parênteses a parte:

data_entrada >= '2007-09-01' or data_saida >= '2007-10-19'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.