Добрый день.расчеты с истекшим временем на таблице mysql
У меня есть эта среда: на Mysql db, каждый раз, когда пользователь входит в систему на сайте, создается новая строка с именем и временем входа в систему. Поскольку система является взаимной эксклюзивностью, в данный момент будет только пользователь, и если новый пользователь прибудет, один из зарегистрированных отключится.
Теперь они попросили меня рассчитать общее время всех пользователей в системе, поэтому в основном я должен суммировать все различия во времени с логином и его следующей.
user | timestamp |
------------------------------
alpha | 2013-01-19 03:14:07
beta | 2013-01-20 11:24:04
alpha | 2013-01-21 02:11:37
alpha | 2013-01-21 03:10:31 <---- a user could login twice, it is normal
gamma | 2013-01-21 11:24:04
beta | 2013-01-21 11:25:00
Я хотел бы спросить ваше мнение, так как есть много логинов, что это лучший способ, чтобы вычислить общее авторизовались времени пользователя? в этом примере «гамма» будет иметь время входа в систему 56 секунд, и последний логин бета-версии может быть проигнорирован, так как он будет в сети во время выполнения этой проверки. поэтому «бета» будет иметь только одну запись.
есть способ рассчитать его с помощью запроса? или лучше добавить столбец «время в сети», и пусть система вычисляет каждый раз, когда пользователь выходит из системы, сколько времени потрачено в Интернете?
Можете ли вы быть уверены, что разница в логинах - это время входа в систему? Что делать, если пользователь выходит из системы и не работает какое-то другое время? – kero
это выполнимо в mysql, но проще в php. просто заберите все строки, упорядоченные по метке времени, а затем начните выполнять «текущую временную метку строки» - отметку времени предыдущей строки, если имя пользователя отличается », чтобы получить промежутки между входами. –
Да, допустим, если пользователь выйдет из системы и ни один вход в систему, система все равно будет занята. –