2015-09-02 93 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,查詢不返回任何結果,即使ID在指定日期都在裏面範圍。 你能幫我嗎?

+0

可能重複(http://stackoverflow.com/questions/143552/comparing-date-ranges) –

+0

多德請檢查數據不在裏面,結果在檢查之間是正確的**開始<='2015-09-11'AND開始<='2015-09-12 **根據它這個條件並不令人滿意 –

+0

請仔細檢查('2015-09-10')<='2015-09-11'和start('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'))