java统计今日登陆用户_java - 根据一张登录登出日志表计算每个用户在线时长,求个思路...

巴扎黑2017-04-18 10:33:06

原始表(假设):

record_id uid name opr_type c_time

1 10 cxl land 2016-12-26 08:00:00

2 10 cxl out 2016-12-26 23:00:00

最终生成的表:

用户名 日期(asc) 当天第一次登陆时间 当天最后一次登出时间 登陆时长(结果非准确值)

cxl 2016-12-26 2016-12-26 08:00:00 2016-12-26 15:00:00 3小时10分

cxl 2016-12-27 2016-12-26 08:30:00 2016-12-26 23:00:00 6小时10分

具体流程:

1. 日期分组

2. 当天第一次登陆时间

2.1 第一种情况:若当天第一条记录操作类型是 登出,那么 当天第一次登陆时间 = 00:00:01

2.2 第二种情况:若当天第一条记录操作类型是 登陆,那么 当天第一次登陆时间 = c_time

3. 当天最后一次登出时间

3.1 第一种情况:若当天最后一条记录操作类型是 登陆,那么 当天最后一次登出时间 = 23:59:59

3.2 第二种情况:若当天最后一条记录操作类型是 登出,那么 当天最后一次登出时间 = c_time

4. 登陆时长

4.1 当天最后一次登出时间 - 当天第一次登陆时间

提供下思路哈,具体实现起来个人觉得很不容易(逻辑处理需用到php,分页的时候也较麻烦,得按照日期进行分页显示,而不能像 limit 1 , 10 这样按取出的记录数进行分页 ,单sql无法得出最终表结构),所以,就只能到这儿了....回复0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值