sql >> Databasteknik >  >> RDS >> Mysql

mySQL-fråga mellan två datum och två gånger

Inte säker på om ditt datumfält är indexerat. Om de är de "konkat" exemplen som andra har gett kanske inte fungerar särskilt bra.

Som ett alternativ kan du använda en fråga i 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 är inte snyggt men det fungerar och tillåter mysql att använda index på datumfältet om de finns.

Så din fråga skulle vara

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. Introduktion till Oracle RMAN

  2. Hur dyra är implicita konverteringar på kolumnsidan?

  3. MariaDB USER() Förklarat

  4. Hur kan jag få de mest populära orden i en tabell via mysql?