sql >> Databáze >  >> RDS >> Mysql

dotaz mySQL mezi dvěma daty a dvěma časy

Nejste si jisti, zda je vaše datum indexováno. Pokud se jedná o „souvislé“ příklady, které uvedli ostatní, nemusí fungovat příliš dobře.

Alternativně můžete použít dotaz ve tvaru:

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)

Není to hezké, ale funguje to a umožní mysql používat indexy v poli data, pokud existují.

Váš dotaz by tedy byl

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. Jak vložit pole do mysql pomocí PDO a bindParam?

  2. Hash MD5 MySQL je nesprávný

  3. java.lang.AbstractMethodError:com.mysql.jdbc.Connection.isValid(I)Z

  4. Použití více databází v rámci CodeIgniter