2009-11-13 6 views
1

J'espérais que quelqu'un pourrait aider avec une requête SQL de plage de dates compliquée.Requête de plage de dates compliquée dans MySQL

Je dois trouver un tas de dossiers qui pourraient être: 1) dans la plage de dates recherché
2) en dehors de la plage recherchée, mais courir à travers elle
3) à l'extérieur gauche de la plage recherchée, à partir 4) en dehors du droit de la plage recherchée, en commençant par et en se terminant après.

C'est plus compliqué que je ne le pensais!

Jusqu'ici j'ai capturé les deux premiers. Comment peut inclure les deux derniers sans tirer tout avant et après la plage de recherche?

Un grand merci,
Chris

Répondre

4

Si vous voulez que tous les documents qui pourraient toucher la plage de dates, vous voulez seulement exclure ceux qui commencent après la fin de la plage ou à la fin avant le début de la plage :

NOT (date_start > *enddate* or date_end < *startdate*) 

Cela équivaut à

date_start <= *enddate* and date_end >= *startdate* 
+0

C'est génial! Merci beaucoup :) – ChrisS