Tjoho, Man måste göra flera jämförelser, två stycken om jag inte minns fel. Två intervall [a1, b1] och [a2, b2] överlappar varandra om max(a1, a2) < min(b1, b2). Eftersom du inte vill att intervallen skall överlappa, skall du alltså ha max(a1, a2) >= min(b1, b2).Bokningssystem, kunna känna av om bokning finns mellan två datum
Sitter här och knåpar på ett bokningssystem, men har stött på ett litet problem som jag inte riktigt vet hur jag ska lösa.
I bokningssysystemet ska man kunna söka om ett rum är ledigt mellan två datum, är det ledigt ska det dyka upp i en lista. Problem uppstår om man får för sig att söka efter två olika datum med ett längre mellanrum.
Låt säga att rum 1 är bokat från 2008-12-10 till 2008-12-24. Anger jag 2008-12-09 till 2008-12-25 när jag söker kommer rummet att visas som ledigt, om jag kör med en BETWEEN.
Hur skulle ni lösa detta problem via SQL? - Kör mySQL om det gör någon skillnad...Sv: Bokningssystem, kunna känna av om bokning finns mellan två datum
1) Bokningen måste börja efter sökt slutdatum
eller
2) Bokningen måste sluta innan sökt startdatum
Om något av de två kriterierna uppfylls så kan man anse att rummet är ledigt
(Hoppas jag tänkte rätt nu.. :P )Sv:Bokningssystem, kunna känna av om bokning finns mellan två datum
Observera att i databasen heter funktionerna GREATEST() resp LEAST().