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

MySQL-Abfrage zwischen zwei Daten und zwei Zeiten

Nicht sicher, ob Ihr Datumsfeld indiziert ist. Wenn dies der Fall ist, funktionieren die "concat"-Beispiele, die andere gegeben haben, möglicherweise nicht sehr gut.

Alternativ können Sie eine Abfrage der Form:

verwenden
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)

Es ist nicht hübsch, aber es funktioniert und wird mysql erlauben, Indizes für das Datumsfeld zu verwenden, falls vorhanden.

Ihre Abfrage wäre also

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")