[英]MySQL querying date range
這是我的數據庫(酒店的免費房間,簡化)
rooms_available :
id date_available room_id
================================
1 2013-12-19 2
2 2013-12-20 2
3 2013-12-21 2
4 2013-12-22 2
5 2013-12-23 2
6 2013-12-25 3
房間 :
id name minimal_range
================================
2 Apartment A 5
3 Apartment B 1
我想查詢2013-12-20和2013-12-22之間可用的所有房間
我的查詢如下:
select *
from rooms_available
where (date='2013-12-20' OR date='2013-12-21' OR date='2013-12-22')
我的問題:
謝謝
date> ='2013-12-20'和date <='2013-12-22'
SELECT * FROM rooms_available WHERE `date_available` BETWEEN "2013-12-20 " AND "2012-03-31"
我沒有對此進行測試,但它應該指向正確的方向,尤其是關於最小范圍的問題的第二部分。
SELECT t1.id as id, t1.date_available as date_available, t1.room_id
FROM rooms_availble as t1 JOIN rooms as t2 on t1.room_id = t2.id
WHERE t1.date_available BETWEEN DATE('2013-12-20') AND DATE('2012-03-31') AND
t2.minimal_range <= datediff('2013-12-22', '2012-12-20');
mysql datediff函數將返回兩個日期之間的天數,然后您可以將它與房間連接表中的minimal_range進行比較。 您也可以考慮將開始日期和結束日期綁定到變量,這樣您只需要編寫一次日期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.