Forum Clubic

RESOLU [MySQL 5] Requête SQL sur plages de dates

Bonjour à tous,

Je cherche a détecter si deux plages de dates se superposent ou se touchent.

Par exemple, dans ma table, je stock dans deux champs "date_debut" et
"date_fin" qui contiennent respectivement 15/11/2006 et 17/11/2006. Ensuite,
si je fournis les dates 12/11/2006 et 16/11/2006 alors celles-ci touchent la
plage de dates mémorisée dans ma base, donc la requête indique la ligne
trouvée.

J’aimerais donc savoir s’il est possible de faire ceci avec une requête SQL,
et si oui comment ? J’utilise MySQL 5.

J’avais pensé compter le nombre de jours que l’on tente de fournir à la
base, et ainsi faire une boucle “for” contenant une requête qui teste un à
un les jours de la plage proposée … “Between date_debut AND date_fin”.
Mais ça me parait gourmant en ressource.

Merci d’avance pour votre aide,
Yan

SELECT * FROM matable WHERE (date_debut>="12/11/2006" AND date_debut<="16/11/2006") OR (date_fin>="12/11/2006" AND date_fin<="16/11/2006")

tu peux aussi utiliser des < ou > a la place des <= et >= si tu veut que la selection ne se fasse pas quand les deux plages se touche d’un seul jour (exemple : 15/11/2006–>17/11/2006 et 17/11/2006–>21/11/2006)

Super, c’est exactement ce qu’il me fallait ! merci !

Yan