- this is the table of picture i want to retrieve datas from
我需要两个查询。
第一个是在当前时间之前获取最新stopTime的actionNo。
第二个查询是获取当前时间之前的最新actionTime时的actionNo。
示例:
如果当前时间是:00:46:20
第一个查询是获取actionNo 9(停止时间:00:45:00)
第二个查询是获取actionNo 8(actiontime:00:41:30)
答案 0 :(得分:0)
SELECT MAX(id) FROM timestuff WHERE `actionTime` < CURTIME();
SELECT MAX(id) FROM timestuff WHERE `stopTime` < CURTIME();
这可以获取当前时间之前动作/停止时间的最新ID,如果您的表始终按照您所示的顺序显示(这意味着,ID显示您的时间值的时间顺序 - 这不是&#39 ;正如我刚刚注意到的那样,你的数据中的情况。)
对于您的情况:您可以采取另一步并在最接近当前时间的时间添加内部联接,然后查找该数据的ID。
第一个查询:对于当前时间之前的最新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;