開始日と終了日を保持するテーブルがmysqlにあります。これらの開始日と終了日は、ホテルが予約されたときのものです。私がする必要があるのは、予約された日付と当月に利用可能な日付を示すカレンダーを表示することです。今月の予約日を確認するにはどうすればよいですか?今月の各日をループすることはできますが、それは30または31のクエリを意味します。カレンダーの日を色分けできるように、その月に予約されている日を見つけるためのより良い、より最適化された方法はありますか?
テーブル構造は次のとおりです。
hotelid int(11)
startdate(日付)
終了日(日付)
クエリリクエスト:
SELECT * FROM hotel_book WHERE hotelid = 1 AND DATE_FORMAT(startdate,'%Y-%m') >= '2012-08' AND DATE_FORMAT(enddate,'%Y-%m') <= '2012-08'
2012-08-01と2012-08-31に合格できると確信しているので、各チェックで日付形式を処理していません。しかし、単なる例の目的のために。