MySQL получить данные из диапазона времени из таблицы

это таблица изображений, из которой я хочу получить данные


Мне нужно два запроса.

  • Первый — получить actionNo из последнего stopTime до текущего времени.

  • Второй запрос — получить actionNo, если последний actionTime предшествует текущему времени.

Пример:

Если текущее время было: 00:46:20

  • первый запрос — получить действие № 9 (время остановки: 00:45:00)

  • второй запрос — получить actionNo 8 (actiontime: 00:41:30)

это, например, диапазон, чтобы получить изображение данных

-1

Решение

SELECT MAX(id) FROM timestuff WHERE `actionTime` < CURTIME();
SELECT MAX(id) FROM timestuff WHERE `stopTime` < CURTIME();

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

Для вашего случая: Вы можете сделать еще один шаг и добавить внутреннее объединение в самое близкое к текущему времени время, а затем посмотреть идентификатор этих данных.

Первый запрос: для последнего stopTime до текущего времени:

SELECT
timestuff.id
FROM
(
SELECT
MAX(stopTime) AS maxTime
FROM
timestuff
WHERE
`stopTime` < CURTIME()
) AS time
INNER JOIN timestuff ON timestuff.`stopTime` = time.maxTime;

Второй запрос: для первого actionTime после текущего времени:

SELECT
timestuff.id
FROM
(
SELECT
MIN(actionTime) AS minTime
FROM
timestuff
WHERE
`actionTime` > CURTIME()
) AS time
INNER JOIN timestuff ON timestuff.`actionTime` = time.minTime;
0

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

Других решений пока нет …

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