Я хочу вычесть между двумя значениями времени даты, используя SQL в MySQL, чтобы получить интервал в минутах или секундах. Есть идеи? Я хочу запустить SQL-запрос, который извлекает данные из базы данных, которые вошли в систему как 10 минут с момента.
Как вычитать с помощью SQL в MYSQL между двумя значениями даты и получить результат в минутах или секунде?
Ответ 1
Существуют функции TIMEDIFF (expr1, expr2), которые возвращают значение expr1-expr2 и TIME_TO_SEC (expr3), которое выражает expr1 в секундах.
Обратите внимание, что expr1 и expr2 являются значениями даты и времени, а expr3 - только значением времени.
Для получения дополнительной информации просмотрите эту ссылку.
Ответ 2
TIMESTAMPDIFF похож на TIMEDIFF, который утверждает Мэтью, за исключением того, что он возвращает разницу двух дней в любых единицах, которые вы хотите (секунды, минуты, часы и т.д.).
Например,
SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn
FROM LogTable
Вернет количество минут, в течение которых пользователь выполнил вход (при условии, что вы сохранили этот тип вещей в такой таблице).
Ответ 3
Я бы сделал это так: выберите, где последняя активность находится в пределах 10 минут.
SELECT * FROM table WHERE last_activity >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
Ответ 4
SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn
FROM LogTable
Этот пример разрушит время, если оно используется с использованием военного времени. Поэтому для подсчета миллиметрового времени я его не рекомендую, поскольку он выводит отрицательные значения.
Ответ 5
Вы можете попробовать и отбросить их на отметку Unix Time и принять во внимание.