Ir para conteúdo
Fórum Script Brasil
  • 0

Between com campo TIME


tiagoerf

Pergunta

E ai pessoal

estou com um problema com o uso do campo TIME, é o seguinte, faço um cadastro de uma reserva de sala de reunião campos SALA, DATA_INICIO, HORA_INICIO, DATA_FIM e HORA_FIM

fiz o seguinte registo no banco SALA = 1, DATA_INICIO ='2010-10-05' , HORA_INICIO= '08:00:00' , DATA_FIM = '2010-10-05' e HORA_FIM = '17:00:00',

faço um verificação no banco para ver se a sala esta disponivel este intervalo de tempo. segue a query:

SELECT * FROM reserva
WHERE SALA = 1
AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05'
AND (HORA_INICIO BETWEEN '09:00:00' AND '10:00:00'
OR HORA_FIM BETWEEN '09:00:00' AND '10:00:00')

e a query retorna vazio sendo que existe a reserva da sala no horario de '08:00:00' as '17:00:00'

se alguém poder me ajudar, muito obrigado desde já!

Editado por Denis Courcy
Melhorar entendimento do código
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
E ai pessoal

estou com um problema com o uso do campo TIME, é o seguinte, faço um cadastro de uma reserva de sala de reunião campos SALA, DATA_INICIO, HORA_INICIO, DATA_FIM e HORA_FIM

fiz o seguinte registo no banco SALA = 1, DATA_INICIO ='2010-10-05' , HORA_INICIO= '08:00:00' , DATA_FIM = '2010-10-05' e HORA_FIM = '17:00:00',

faço um verificação no banco para ver se a sala esta disponivel este intervalo de tempo. segue a query:

SELECT * FROM reserva
WHERE SALA = 1
AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05'
AND (HORA_INICIO BETWEEN '09:00:00' AND '10:00:00'
OR HORA_FIM BETWEEN '09:00:00' AND '10:00:00')
e a query retorna vazio sendo que existe a reserva da sala no horario de '08:00:00' as '17:00:00' se alguém poder me ajudar, muito obrigado desde já!
Sua select não deveria ser:
SELECT * FROM reserva
WHERE SALA = 1
AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05'
AND ((HORA_INICIO BETWEEN '08:00:00' AND '10:00:00')
OR (HORA_FIM BETWEEN '08:00:00' AND '10:00:00'))
Ou seja o horário igual a 8:00:00 em vez de 9:00:00? O sql correto deveria ser sem usar o BETWEEN. Assim:
SELECT * FROM reserva
WHERE SALA = 1
AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05'
AND HORA_INICIO <= '09:00:00' AND HORA_FIM >= '10:00:00'

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...