2016-11-08 1 views
0

Ich arbeite an einem Hotel-Management-Projekt, bei dem es zwei Termine gibt. Ein Datum gilt für das Datum, an dem das Zimmer gebucht wurde, und das andere ist sein Abreisedatum. Beide Daten sind bereits in der Datenbank. Wenn nun ein neuer Gast am selben Tag zwischen diesen beiden genannten Daten kommt und gebucht wird, sollte eine Nachricht wie Raum gebucht für das ausgewählte Datum erscheinen.So führen Sie eine Datumsprüfung zwischen allen Datensätzen der Datenbank durch

+0

Zeig uns, wie weit du kommst und was nicht funktioniert. Versuchen Sie eine SQL-Prozedur oder nur C# -Methode? – Poody

+0

Ich muss diese Operation in meinem C# -Projekt durchführen. Aber ich suche nach der Logik in meinem SQL SERVER 2008. –

+0

@RahulKumar Überprüfen Sie meine Antwort –

Antwort

0
select Count(1) from tablename where getdate() between Startdate and EndDate 

in Ihrem Zustand überprüfen Sie die Anzahl. wenn count> 0 Schuh Ihre Nachricht

* name = yourtablename

* Anreise Datum und Enddatum = ändern sich entsprechend nach Ihren column

UPDATE:

select Count(1) from tablename where getdate()>=Startdate and getdate() <= EndDate 
+0

Es funktioniert nur an einem Datum, aber ich muss beide Daten auswählen, dh Zimmer buchen Datum und Abreisedatum und dann muss ich überprüfen, ob es Konflikte oder nicht. –

+0

@RahulKumar Überprüfen Sie meine aktualisierte Antwort. ist es jetzt einfach? –

+0

warten Sie nur geben Sie mir einen Tipp –

0
declare @bookingDate as datetime ,@roomId as int 
Select @bookingDate = '[Insert Date Here]',@roomId = [Enter your roomId] 

select 1 as 'booked' from some_table 
where @bookingDate > date_checked_in 
and @bookingDate < date_checked_out 
and roomId = @roomId 

// Vielleicht Post Wie sieht die aktuelle Tabelle aus?

+0

Tabelle ist zu kompliziert. Denken Sie nur an zwei Felder Startdatum und Enddatum –

+0

Dann könnte das obige funktionieren. Sie können es sogar in eine Funktion umwandeln, die einen Bitwert zurückgibt, der angibt, ob der Raum verfügbar ist. ie f_IsRoomAvailable (roomId, Required_Date) Alternativ können Sie einen gespeicherten Proc erstellen, der eine Liste der für das angegebene Datum verfügbaren Räume zurückgibt. –

Verwandte Themen