BETWEEN não funciona de maneira esperada
Bom dia pessoal! http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif
Estou tentando fazer uma consulta SQL para um hotel. Nesse script o usuário realiza a tarefa de informar a data de chegada e data de partida. As mesmas são confrontadas com os registros já cadastrados no banco de dados, para saber se existe apartamentos disponíveis entre as datas sugeridas.
Na consulta que venho tendo problema quero retornar os registros que possuem a "Data Inicial" entre as datas de entrada/partida sugeridas pelo usuário ou a "Data Final" entre as datas de entrada/partida sugeridas pelo usuário. Para isso fiz a seguinte linha de código:
$sql = "SELECT * FROM $TB_RSV_Reserv WHERE startDate BETWEEN '$start' AND '$end' OR endDate BETWEEN '$start' AND '$end'";
Para que entendam o problema vou fazer duas simulações:
Datas digitadas pelo usuário: 30/08/2009 - 30/08/2009;
Considerando os registros do banco:
- 30/08/2009 - 30/08/2009
- 31/08/2009 - 03/09/2009
- 30/08/2009 - 31/08/2009
Nesta consulta deveria ser retornados os itens (1,3), mas ela está me retornando todos os itens, ou seja (1,2,3)
Outra simulação é a seguinte:
Considere os registro do banco citados acima.
Se o usuário digitar 31/08/2009 - 03/09/2009, o registro (2) é exibido, mas se digitar 01/09/2009 - 03/09/2009 não é exibido nada.
Se alguém puder me dar um dica de como resolver esta consulta fico feliz.
Até +
>
Fiz outros teste usando apenas SELECT * FROM $TB_RSV_Reserv WHERE startDate BETWEEN '$start' AND '$end' e mesmo assim continua o erro!
Discussão (6)
Carregando comentários...