Как получить строки между двумя часами из столбца datetime? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть datetime столбец. Как получить строки, в которых столбец Date находится между двумя конкретными часами (независимо от дня, месяца и года).

Например, любая строка, чей час находится в диапазоне от 14:00:00 до 15:00:00 (на все дни)?

Ответы [ 3 ]

3 голосов
/ 15 октября 2019

Вы можете использовать time() или hour():

where hour(datetime) >= 14 and hour(datetime) < 16

или:

where time(datetime) >= '14:00:00' and time(datetime) < '16:00:00'

или вы можете предпочесть это как:

where time(datetime) >= '14:00:00' and
      time(datetime) < '15:00:00' + interval 1 hour

Примечание. Ни один из них не будет использовать индекс из-за вызова функции в столбце datetime.

1 голос
/ 15 октября 2019
select *
 from (
  select cast (substr(to_char(datetime,'YYYY-mm-dd HH:MM:SS'),12,2) as integer ) as compare 
      from table )
where compare between 14 and 15;
1 голос
/ 15 октября 2019

Попробуйте это

select * from table where hour(datetime) between 14 and 16

или

select * from table where time(datetime) between '14:00:00' and '16:00:00 '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...