Im auf einem Besprechungsraum Reservierungssystem arbeiten, und ich Mühe habe, herauszufinden, ob ein Raum innerhalb eines festgelegten Zeitraums genommen wird, verwende ich das aktuelle Format für Daten und hat die Art zu DATETIME
in der Tabelle: YYYY-MM-DD HH:II:SS
Wie überprüft man, ob eine Buchung innerhalb des Zeitrahmens existiert?
Dies ist mein aktueller Code:
//Function to check if a booking exists:
function bookingExist($DateStart, $DateEnd, $RoomNo) {
global $DB;
$sql = "SELECT * FROM bookings WHERE date_start = :dateStart AND date_end = :dateEnd AND room_no = :roomNo";
$Q = $DB->prepare($sql);
$Q->bindParam(':dateStart', $DateStart);
$Q->bindParam(':dateEnd', $DateEnd);
$Q->bindParam(':roomNo', $RoomNo);
$Q->execute();
if ($Q->rowCount()) {
//A record exists...
return true;
} else {
//no record exists
return false;
}
}
gibt es eine Möglichkeit, dies in der sQL-Abfrage zu tun?
Beispiel: Raum A ist gebucht zwischen 2016-03-31 15:00:00 und 2016-03-31 17:30:00 Der Benutzer versucht dann, eine neue Buchung für Raum A für 2016-03-31 16 zu erstellen : 30: 00 - 2016-03-31 17:00:00 und thsi sollte 1 Datensatz zurückgeben, da es eine Buchung gibt
das Zimmer von Datum genommen wird und Zeit A zu Datum und Zeit B. Also, wenn Eith Wenn der Anfang oder das Ende Ihres neuen Zeitrahmens zwischen A und B liegt, wird er genommen. Ist das, was Sie in SQL brauchen? – Renan
@Renan hier ist ein Beispiel: Zimmer A ist gebucht zwischen 2016-03-31 15:00:00 und 2016-03-31 17:30:00 Benutzer versucht dann, eine neue Buchung für Zimmer A für 2016 zu erstellen -03-31 16:30:00 - 2016-03-31 17:00:00 und thsi sollte 1 Datensatz zurückgeben, da es eine Buchung gibt –
Siehe meine aktualisierte Antwort. –