2015-03-28 2 views
1

Мне нужно выбрать значения в время (не временная метка) интервала (например, +/- 30 минут). Мой пример DB состоит из 2 столбцов: текст (VARCHAR (100)) и время (ВРЕМЯ).Выбор MySQL во временном интервале

Теперь я использую такой синтаксис:

SELECT * FROM table WHERE time BETWEEN SUBTIME(CURTIME(), "0:30:00") AND ADDTIME(CURTIME(), "0:30:00") 

Но я думаю, что это не является оптимальным, поскольку в каждой строке он выполняет CURTIME(), SUBTIME(), AddTime(). Любой способ его оптимизировать?

ответ

1

Это фактически не выполняет функцию для каждой строки, потому что вы выполняете функцию на CURTIME(). Он будет вычислять его один раз и использовать его для всех строк, как если бы вы поставили точное время в себе.

У вас будет только проблема вычисления каждой строки, если функция работает со столбцом (например, время). Таким образом, вы сделали это правильно.

Смежные вопросы