【发布时间】:2016-03-01 18:50:01
【问题描述】:
具有两个日期时间列的网站用户登录数据表。一个是登录时间,一个是注销时间。
表格有以下列
user_id (user id of the
datetime (start login time DATETIME )
datetime_end (end logout time DATETIME)
我需要根据这些数据生成报告或计算以下内容
- 用户的每日 AVG 登录持续时间(即 2015 年 3 月 1 日为 21 分钟,2016 年 11 月 3 日为 25 分钟等)
第二个报告是
- 当前日期(过去 24 小时)基于小时 AVG 登录持续时间(即与上述相同,但仅每小时 AVG)
有没有办法通过 MySQL 查询来实现这一点? (或 SQL 查询)
table is create is
CREATE TABLE IF NOT EXISTS `users_login` (
`login_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
`last_ip` varchar(45) NOT NULL DEFAULT '0.0.0.0',
`server_ip` varchar(225) DEFAULT '0.0.0.0',
`country` varchar(2) NOT NULL DEFAULT '00',
`continent` tinytext,
`datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`datetime_end` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
【问题讨论】:
-
您建议如何处理跨越两个日期的用户会话?例如,用户在 2 月 29 日晚上 11 点登录,然后在 3 月 1 日凌晨 2 点注销。