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

Vælg værdier mellem startdato og slutdato

Jeg læser dette problem som at lede efter overlapning af intervaller:

så du har data i området:T1 til T3. Og leder efter overlap med området T2 til T4. Da de overlapper, vil du have. Men hvis data er T1 til T3 og rækkevidde er T4 til T5 .. ingen overlapning, så ønsker ikke.

Du kan gøre det med denne forespørgsel:

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

Så hvis det startede efter den givne dato (14. februar 2015), skal du ikke inkludere det. eller hvis det sluttede før 3. januar 2013 ... medtag det ikke. Medtag alt andet, da det overlapper:

Som 1 eksempel:Data slutter efter den givne startdato for interval, og dataens startdato er før slutdatoen, så det er et af følgende tilfælde:

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

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

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

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


  1. nhibernate, kalder funktion i Oracle, som returnerer sys refcursor

  2. MySQL-korreleret underforespørgsel i JOIN-syntaks

  3. Java MySQL JDBC-hukommelseslækage

  4. forespørgsel for at fjerne alle tegn efter sidste komma i strengen