2

列を持つ予約という名前のデータベースにテーブルがあります:iddate_fromdate_toobj_id

私のアプリでは、指定された日付範囲で部屋 ( obj_id ) の空室状況を確認できる SQL クエリを作成する必要があります。

次のようなものを使用しようとしていましたが、うまく機能していません。

select * from `reservations`  
where ((`date_from` <= $from and `date_to` >= $from)
or (`date_from` <= $to and `date_to` >= $to)) and `obj_id` = $obj

たとえば、2013 年 7 月 3 日から 2013 年 7 月 6 日までに部屋が予約されている場合、2013 年 7 月 1 日から 2013 年 7 月 7 日までの日付は空きとして扱われます。

4

1 に答える 1

3

指定された 2 つの日付の間の結果をフィルター処理するために、SQL のBetween句を使用できます。詳細については、このリンクを参照してください。
クエリとして試すことができるものは次のとおりです。

Select * from `Reservations` where $ToDate between date_from and date_to 
            OR date_to between  $FromDate  and  $ToDate  
            OR  $FromDate between date_from and date_to 
            OR date_from between $FromDate  and $ToDate
            AND `obj_id` = $obj;
于 2013-07-10T08:25:34.353 に答える