#mysql #sql #timestamp
#mysql #sql #временная метка
Вопрос:
Я могу получить только текущий тест. Как отобразить точное время только до следующего теста?
Ответ №1:
Я не знаю, правильно ли я понял ваш вопрос: «Я могу получить только текущий тест». Означает ли это, что у вас есть идентификатор текущего теста или что вы можете определить этот тест, сравнив его начало и конец с текущим временем?
В первом случае вы можете сделать:
SELECT *, TIMEDIFF(b.start, a.end)
FROM <table> AS a
LEFT JOIN <table> AS b ON b.id_quiz <> a.id_quiz AND b.start > a.end
WHERE a.id_quiz = <current quiz id>
ORDER BY b.start ASC
LIMIT 1
Во втором случае это еще проще:
SELECT *, TIMEDIFF(x.start, NOW())
FROM <table> AS x
WHERE x.start > NOW()
ORDER BY x.start ASC
LIMIT 1
Комментарии:
1. Вопрос Бартека имеет NOW () в качестве параметра, а не текущий идентификатор теста
2. @Dan, я не вижу ничего
NOW()
в вопросе. В любом случае, спасибо за вашу подсказку. Возможно, я не совсем правильно понял вопрос, поэтому я отредактировал свой ответ в этом направлении.3. не хочу показаться идиотом, но вам следует сравнить, используя >=
Ответ №2:
вычесть сейчас из начала?
-(now()-start)?