Подтвердить что ты не робот

Вычисление разницы во времени между 2 датами в минутах

У меня есть поле времени Timestamp в моей базе данных MySQL, которое сопоставляется с типом DATE в моем bean. Теперь мне нужен запрос, по которому я могу получить все записи в базе данных, для которых разница между текущей меткой времени и записью, хранящейся в базе данных, составляет > 20 минут.

Как я могу это сделать?

Я хочу:

SELECT * FROM MyTab T WHERE T.runTime - now > 20 minutes

Существуют ли какие-либо функции MySQL для этого или любой способ сделать это в SQL?

4b9b3361

Ответ 2

ROUND(time_to_sec((TIMEDIFF(NOW(), "2015-06-10 20:15:00"))) / 60);

Ответ 3

Попробуйте следующее:

select * from MyTab T where date_add(T.runTime, INTERVAL 20 MINUTE) < NOW()

ПРИМЕЧАНИЕ. Это должно работать, если вы используете формат MySQL DateTime. Если вы используете временную метку Unix (integer), то это будет еще проще:

select * from MyTab T where UNIX_TIMESTAMP() - T.runTime > 20*60

Функция UNIX_TIMESTAMP() возвращает текущую временную метку unix.

Ответ 4

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

TIMESTAMPDIFF(MINUTE,T.runTime,NOW()) > 20

Здесь мы можем использовать ЧАС(для часов), ДЕНЬ(для дней) вместо МИНУТЫ, если нам нужно.