2015-09-02 3 views
0

У меня есть таблица MySQL с некоторыми диапазонами дат, например:Оценка MySQL диапазон дат

start: 2015-09-10 end: 2015-09-10 

Теперь я должен проверить, если другой диапазон дат внутри даты начала и окончания, даже если только для некоторых дней.

  1. 2015-09-02 -> 2015-09-03 за пределами диапазона;
  2. 2015-09-05 -> 2015-09-11 находится внутри диапазона;
  3. 2015-09-11 -> 2015-09-12 находится внутри диапазона;
  4. ...

У меня есть этот запрос, он работает для случая 1 и 2:

SELECT * FROM prenotazione WHERE id_stanza=1 AND (start BETWEEN '2015-09-11' AND '2015-09-12' and end BETWEEN '2015-09-11' AND '2015-09-12') 

Для случая 3, запрос не возвращает никакого результата, даже идентификатор указанной дата внутри диапазон. Вы можете мне помочь?

+0

возможный дубликат [Сравнение диапазонов дат] (http://stackoverflow.com/questions/143552/comparing-date-ranges) –

+0

Чувак, пожалуйста, проверьте данные не внутри, результат правильный между проверкой как: ** start <= '2015-09-11' И начать <= '2015-09-12 ** в соответствии с этим это условие не удовлетворяет –

+0

Чувак, пожалуйста, проверьте данные не внутри, результат правильный, например, как ** start ('2015-09-10') <= '2015-09-11' И начать ('2015-09-10') <= '2015 -09-12 '** в соответствии с этим это условие не удовлетворяет и такое же для «конца» –

ответ

0

использование OR, чтобы соответствовать либо начать или закончить

SELECT * FROM prenotazione 
WHERE id_stanza=1 AND 
((`start` BETWEEN '2015-09-11' AND '2015-09-12') OR (`end` BETWEEN '2015-09-11' AND '2015-09-12')) 
Смежные вопросы