0

私はすでにネットを襲撃しましたが、それでも答えはありません。

さて、ホテルの部屋予約システムを作っています。

私の空室状況クエリは、このクエリで正常に機能します。

SELECT r.roominv_id, r.room_id, m.room_type,r.room_number,r.room_status
            FROM roominventory r
            INNER JOIN room AS m ON m.room_id = r.room_id
            WHERE m.room_type LIKE '%$roomtype%'
            AND r.room_status = 'available'
            AND r.roominv_id NOT IN (SELECT b.roominv_id
                       FROM reserve b
                       WHERE NOT (b.chckout < '$chckin'
                                  OR b.chckin > '$chckout'))

2月2日を午後の開始日(ホテルの予約は常に正午以降に開始する必要があります)、2月3日を終了日(正午まで)にしたかったのです。

しかし、現在のクエリでは、開始日として2月2日を選択し、終了日として2月3日を選択すると、データベースで2日間の予約として表示されます。

だから私の質問は、クライアントがすでに予約されている部屋から終了日を選択できるようにするにはどうすればよいですか?

私は実際にAM/PMのような日付ピッカーがあるサイトを見ましたhttp://reservations.directwithhotels.com/reservation/selectDates/148/campaign/ew

しかし、私はjavascriptにとても慣れていません。

4

2 に答える 2

0

chckoutおよびのデータ型に応じて、chckin単に演算子を使用するBETWEENか、包括的等価演算子 ( >=, <=) を使用することができます。

于 2013-02-21T15:21:59.497 に答える
0

where句を次のように変更するだけでよいと思います。

WHERE NOT (b.chckout < '$chckin'
                              OR b.chckin >= '$chckout')

これは、chckin と chckout が日付として格納されていることを前提としています。それ以外の場合は、データベースに依存する日付に変換する必要があります。. . ここにいくつかの方法があります:

date(b.chckin)
cast(b.chckin as date)
trunc(b.chckin)
于 2013-02-21T15:32:15.427 に答える