Mysql
 sql >> Database >  >> RDS >> Mysql

Seleziona i valori tra la data di inizio e la data di fine

Ho letto questo problema come una ricerca della sovrapposizione di intervalli:

quindi hai dati nell'intervallo:da T1 a T3. E cercando la sovrapposizione con la gamma da T2 a T4. Dal momento che si sovrappongono, vuoi. Tuttavia, se i dati vanno da T1 a T3 e l'intervallo va da T4 a T5 .. nessuna sovrapposizione, quindi non voglio.

Puoi farlo con questa query:

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

Quindi, se è iniziato dopo la data specificata (14 febbraio 2015), non includerlo o se è terminato prima del 3 gennaio 2013 ... non includerlo. Includi tutto il resto, poiché si sovrappone:

Come 1 esempio:i dati terminano dopo la data di inizio dell'intervallo specificato e la data di inizio dei dati è precedente alla fine, quindi è uno dei seguenti casi:

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

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

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

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