mysql と php を使用して日付と時刻の競合を確認したい。
私のタイムスタンプは、次のようなphpコードを使用してフォーマットされています。
$timestamp_start = date("Y-m-d H:i:s", mktime(date("H", strtotime($start_time)), date("i", strtotime($start_time)), 0, $date[0], $date[1], $date[2]));
$timestamp_end = date("Y-m-d H:i:s", mktime(date("H", strtotime($end_time)), date("i", strtotime($end_time)), 0, $date[0], $date[1], $date[2]));
そして、以下のようにmysqlチェックを行います:
$sql = "SELECT * FROM `$info[table]` WHERE ((`timestamp_start` BETWEEN '$timestamp_start' AND '$timestamp_end') OR (`timestamp_end` BETWEEN '$timestamp_start' AND '$timestamp_end'))";
ここから取得したコードはどれですか! ハハ。
問題は、ルームが 2013 年 10 月 31 日の午前 8 時から午後 5 時までにスケジュールされていて、他の誰かが 2013 年 10 月 31 日午後 5 時から午後 9 時までにスケジュールしようとすると、ルームが既に使用されているというメッセージが表示されます。イベント間に少なくとも 30 分の間隔が必要だったので、最初は気にしませんでしたが、上司は、部屋は連続してスケジュールできるはずだと言いました。
05:00 PM までずっと予約されている場合、誰かが 05:00 PM に部屋をリクエストできるように SQL ステートメントを変更するにはどうすればよいですか?
これはうまくいくようです
$sql = "SELECT * FROM `$info[table]` WHERE `approved`='true' AND (`timestamp_start` < '$timestamp_end' AND `timestamp_end` > '$timestamp_start')";