Точное время, оставшееся до следующего теста

#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)?