Ik lees dit probleem als zoeken naar de overlap van bereiken:
dus je hebt gegevens binnen bereik:T1 tot T3. En op zoek naar overlap met bereik T2 tot T4. Omdat ze elkaar overlappen, wil je. Echter, als de gegevens T1 tot T3 zijn en het bereik is T4 tot T5 .. geen overlap dus niet willen.
U kunt dat doen met deze vraag:
Select id
from eventos_sapo
where startDate <= '2015-02-14'
AND endDate >= '2013-01-03';
Dus als het begon na de opgegeven datum (14 februari 2015), neem het dan niet op. of als het eindigde vóór 3 januari 2013 ... neem het dan niet op. Voeg al het andere toe, omdat het overlapt:
Als 1 voorbeeld:gegevens eindigen na de startdatum van het opgegeven bereik en de startdatum van de gegevens is vóór het einde, dus het is een van de volgende gevallen:
Data: |---|
Given range: |---|
Data: |-------|
Given range: |---|
Data: |---|
Given range: |---|
Data: |---|
Given range: |-------|