這似乎是一個典型問題,但我無法找到對此問題的答案。預訂日曆抵達和出發日期
我有一個預約表:
book_id | arrive_date | depart_date
1 2015-07-20 2015-07-22
2 2015-07-22 2015-07-23
3 2015-07-19 2015-07-20
你會看到,我已證明,出發日期是到達日期,反之亦然
添加日期之前我檢查的日期範圍不會與表格中的日期相沖突,因此當出發人員將要離開時允許出發日期成爲抵達日期非常重要,以便在我查看錶格中的日期時向Arri_date添加日期,並且使用此SQL從depart_date減去一天:
Select * From booking Where booking.unit_id = 58
And (DATE_ADD(booking.from_date, INTERVAL 1 DAY)
BETWEEN '2015-07-23' AND '2015-07-24'
OR
DATE_SUB(booking.to_date, INTERVAL 1 DAY)
BETWEEN '2015-07-23' AND '2015-07-24'
OR '2015-07-23'
BETWEEN DATE_ADD(booking.from_date, INTERVAL 1 DAY)
AND DATE_SUB(booking.to_date, INTERVAL 1 DAY)) Limit 1
當我添加第一個日期,沒有問題......與第二個和第三個相同,這是因爲第一個日期範圍我在第20天和第22天之間輸入了一天。然後我嘗試添加'2015-07-23'和'2015-07-24',它使用上面的SQL進行檢查,顯然會返回結果。我需要一種方法來允許這些日期被接受,因爲第23日是離開日期。
任何幫助,將不勝感激
我應該還提到,我也有保存阻塞日期「booking_prev」,因此類似的查詢也將在使用前檢查塊日期那些在預訂表的表他們進入。
有沒有必要先檢查。事實上,這可能會適得其反,因爲有人可能會在檢查和做下一步工作之間插入一個值。 – Strawberry
是的,雖然日期只會顯示,並允許預訂,如果他們不在預訂表中,我仍然需要一種檢查日期範圍的方法是有效的第一...請看看我已經添加。 – simmo
你不需要先檢查。 (除非使用交易),支票可以並且應該在插入過程中發生。 – Strawberry