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

mySQL-forespørgsel mellem to datoer og to tidspunkter

Ikke sikker på, om dit datofelt er indekseret. Hvis de er de "konkatte" eksempler, som andre har givet, vil de muligvis ikke fungere særlig godt.

Som et alternativ kan du bruge en forespørgsel på formen:

select * 
  from foo 
 where (date > lower_date and date < upper_date) -- technically this clause isn't needed if they are a day apart
    or (date = lower_date and time >= lower_time)
    or (date = upper_date and time <= upper_time)

Det er ikke kønt, men det virker og vil tillade mysql at gøre brug af indekser på datofeltet, hvis de findes.

Så din forespørgsel ville være

SELECT time,
       close 
  FROM intraday_values 
 where (date > "2005-03-01" and date < "2005-03-02")
    or (date = "2005-03-01" and time >= "15:30")
    or (date = "2005-03-02" and time <= "15:14")


  1. Tilfældig værdi for kolonnen DATETIME

  2. MySQL Vælg:WHERE (tid nu) =MELLEM Tabelværdi OG Tabelværdi

  3. PostgreSQL BESKRIV TABEL

  4. Spring Mvc Hibernate Encoding/Multi-line import sql