再次預訂系統和日期範圍。 我讀過這個話題Comparing date ranges和許多人一樣, 卻找不到答案:(預訂日期範圍mysql php
請參閱SQLFiddle http://sqlfiddle.com/#!2/89b2b/2
我已經預訂表,具有類型的ID
,ObjectID
,PeriodStart
和PeriodEnd
領域DATE
在MySQL
我的示例數據如下:
(1, 3, '2014-08-07', '2014-08-14'),
(2, 3, '2014-08-19', '2014-08-23'),
(3, 2, '2014-08-13', '2014-08-15'),
(4, 2, '2014-08-19', '2014-08-21');
我查詢日期間隔(更新,是$from = '2014-08-14';
):
$from = '2014-08-15';
$to = '2014-08-19'
我想獲得ObjectID
S中的上查詢免費日期間隔。
問題是,對象的2
首先保留在2014-08-15
結束,我們想要從2014-08-15
開始新的保留。同樣的事情結束日期2014-08-19
。現有的預訂在這一天開始。 humans
沒問題,因爲我們計算日期爲nights
,但是如何將同樣的事情告訴MySQL
?
對於這些變量
$from = '2014-08-15';
$to = '2014-08-19'
我想獲得[2, 3]
作爲查詢的結果。
對於第二個查詢
$from = '2014-08-14';
$to = '2014-08-19'
我想只有[3]
得到作爲查詢的結果,因爲對象ID 2
從13 aug
預訂到15 aug
'WHERE PeriodStart <= '2014年8月19日' 和PeriodEnd> =「2014-08-14'':難道我誤解了你的問題或者你是否反轉periodStart和periodEnd? – Logar 2014-09-02 12:23:09
爲什麼'2'會出現在結果中? – 2014-09-02 12:33:42
@GordonLinoff好點。我的錯。 :( – Lari13 2014-09-02 12:41:09