MySQL Select: WHERE (время сейчас) = МЕЖДУ табличным значением И табличным значением

Я ищу способ выбрать строку, в которой текущее время находится между двумя установленными значениями в строке. Я создал таблицу с 3 столбцами, 2 из которых содержат метку времени (ЧЧ: ММ: СС), а другой — строку. Есть ли способ получить строку, соответствующую текущему времени?
Чтобы выразить это более абстрактно:

SELECT String FROM TableName WHERE (текущее время) BETWEEN (нижнее предельное значение времени) И (верхнее предельное значение времени);

альтернативный текст

Таким образом, в основном, исходя из текущего времени, мой скрипт должен вывести правильную строку.

Как мне это сделать?
Спасибо!

7

Решение

В MySQLметка времени — довольно запутанное слово.

Если они lowerlimit а также upperlimit являются TIME столбцы из 00:00:00 в 23:59:59:

SELECT  String
FROM    TableName
WHERE   CURTIME() BETWEEN lowerlimit AND upperlimit
OR CURTIME() BETWEEN SUBTIME(upperlimit, '24:00:00') AND lowerlimit
OR SUBTIME(CURTIME(), '24:00:00') BETWEEN SUBTIME(upperlimit, '24:00:00') AND lowerlimit

Это будет правильно обрабатывать переходы в полночь.

5

Другие решения

SELECT string_col
FROM your_table
WHERE CURTIME() BETWEEN lower_limit_col AND upper_limit_col
4

То, как вы это сделали, во многом так:

SELECT String FROM TableName WHERE CURTIME() BETWEEN (Lower Limit Time Value) AND (Upper Limit Time Value);
2

тип двух столбцов должен быть временем (а не отметкой времени). Тогда ответ на ваш вопрос:

select string from tablename where curtime() between lowerlimit and upperlimit

Просто убедитесь, что ночь не идет с 22:00:00 до 06:00:00, иначе это не сработает. Но вы можете ввести два интервала для мощи: один с 22:00:00 до 24:00:00, а другой с 00:00:00 до 06:00:00.

2
По вопросам рекламы [email protected]