Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consulta mySQL entre duas datas e duas vezes


Não tenho certeza se seu campo de data está indexado. Se forem, os exemplos de "concat" que outros deram podem não funcionar muito bem.

Como alternativa, você pode usar uma consulta do formulário:
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)

Não é bonito, mas funciona e permitirá que o mysql faça uso de índices no campo de data, se eles existirem.

Então sua consulta seria
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")