2012-12-04 2 views
2

Je crois que c'est une requête assez triviale (j'ai fait une recherche sur SO et Google mais je n'ai rien trouvé), SQL n'est pas vraiment mon point fort, et je fais du café depuis des heures ...Demande pour obtenir toutes les réservations qui commencent ou se terminent dans un intervalle de temps?

Je travaille sur un système de réservation simple.

J'ai une table de réservation comme celui ci-dessous:

id | room_id | checkin_date | checkout_date | 
---+---------+---------------+---------------+ 
1 | 12 | 2012-10-12 | 2013-01-14 | 
2 | 9 | 2012-12-08 | 2013-01-10 | 
3 | 4 | 2012-12-19 | 2012-12-26 | 
4 | 6 | 2012-11-12 | 2012-12-30 | 
5 | 3 | 2012-12-11 | 2012-01-11 | 

Comment puis-je obtenir toutes les réserves que soit fin ou BEGIN dans un certain intervalle (les données seront ensuite utilisées pour remplir un calendrier de disponibilité). Désolé de ne pas poster mon propre Sql, mais toutes mes tentatives ont été vaines (et honteusement mauvaises).

Merci d'avance.

Répondre

1
select * from reservations 
where checkin_date between ? and ? 
or checkout_date between ? and ? 

Vous devez fournir les dates de début et de fin dans les espaces réservés, par exemple

select * from reservations 
where checkin_date between '2012-01-01' and '2012-01-66' 
or checkout_date between '2012-01-01' and '2012-01-66' 
+0

Jésus-Christ qui était rapide - .. vous auriez à voir le gâchis et de & OR de I fait . Me sert bien pour l'utilisation d'un ORM, et ne pas apprendre le bon SQL. Je ne me rappelais même pas de l'opérateur entre ... Merci. – AaronSantos

+0

Pas de problème. Bienvenue sur stackoverflow :) – Bohemian

Questions connexes