Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione valores entre a data de início e a data de término


Eu li este problema como procurando a sobreposição de intervalos:

então você tem dados no intervalo:T1 a T3. E procura sobreposição com gama T2 a T4. Uma vez que eles se sobrepõem, você quer. No entanto, se os dados forem T1 a T3 e o intervalo for T4 a T5.. não há sobreposição, então não quero.

Você pode fazer isso com esta consulta:
Select id 
  from eventos_sapo 
 where startDate <= '2015-02-14'
   AND endDate >= '2013-01-03';

Portanto, se começou após a data especificada (14 de fevereiro de 2015), não inclua. ou se terminou antes de 3 de janeiro de 2013 ... não inclua.

Como 1 exemplo:os dados terminam após a data de início do intervalo especificada e a data de início dos dados é anterior ao término, portanto, é um dos seguintes casos:
Data:           |---|
Given range:      |---|

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

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

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