Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie Werte zwischen Startdatum und Enddatum aus

Ich lese dieses Problem als Suche nach der Überlappung von Bereichen:

Sie haben also Daten im Bereich:T1 bis T3. Und suchen Sie nach Überschneidungen mit dem Bereich T2 bis T4. Da sie sich überlappen, möchten Sie. Wenn die Daten jedoch T1 bis T3 und der Bereich T4 bis T5 sind ... keine Überlappung, also nicht wollen.

Das können Sie mit dieser Abfrage tun:

Select id 
  from eventos_sapo 
 where startDate <= '2015-02-14'
   AND endDate >= '2013-01-03';

Wenn es also nach dem angegebenen Datum (14. Februar 2015) begonnen hat, dann schließe es nicht ein /P>

Als 1 Beispiel:Die Daten enden nach dem Startdatum des angegebenen Bereichs, und das Startdatum der Daten liegt vor dem Ende, also ist es einer der folgenden Fälle:

Data:           |---|
Given range:      |---|

Data:           |-------|
Given range:      |---|

Data:             |---|
Given range:    |---|

Data:             |---|
Given range:    |-------|