2012-06-06 7 views
104

Я сохраняю последнее время входа в MySQL, datetime -type filed. Когда пользователи входят в систему, я хочу получить разницу между последним временем входа и текущим временем (которое я получаю с помощью NOW()).Вычислить разницу между двумя датами в MySQL

Как его рассчитать?

+0

http://stackoverflow.com/questions/2546053/mysql-difference-between-two-timestamps-in-days/28451483#28451483 – Kamlesh

ответ

207

ИСПОЛЬЗОВАНИЕ TIMESTAMPDIFF Функция MySQL. Например, вы можете использовать:

SELECT TIMESTAMPDIFF(SECOND, '2012-06-06 13:13:55', '2012-06-06 15:20:18') 

В вашем случае, третий параметр функции TIMSTAMPDIFF будет текущее время входа в систему (NOW()). Второй параметр - это последнее время входа в систему, которое уже находится в базе данных.

+0

То есть, чтобы обновить последнее право входа? что я хочу, как в stackoverflow ваш вопрос отправлен 2s назад, 30s назад, 2 мин. назад .. и т. д. Я хочу аналогичную функциональность. Например, есть одна таблица, скажем REQUESTS (id, message, timestamp). отметка времени при хранении будет NOW(). в то время как я запускаю запрос, выбираю * из запросов, вместо того, чтобы отображать это значение, он должен отображать идентификатор, сообщение и сколько времени назад запрос был отправлен. –

+0

Пока выполняю запрос SELECT TIMESTAMPDIFF (SECOND, NOW(), 'выберите lastLoginTime из запросов, где id =' 2 '') .. Его возвращающий NULL. Любая идея, почему ??? –

+0

Каков результат выбора lastLoginTime из запросов, где id = '2'? – FSP

Смежные вопросы