小编bde*_*eta的帖子

MySQL根据状态字段计算多行之间的时间差

我正在尝试计算单个用户的总登录时间。我有以下 MySQL 表:

user_id | timelog             | status
------- | ------------------- | ------
472     | 2017-07-18 08:00:00 | login
472     | 2017-07-18 09:00:00 | break start
472     | 2017-07-18 09:30:00 | break end
472     | 2017-07-18 10:00:00 | logout
472     | 2017-07-18 11:00:00 | login
472     | 2017-07-18 14:00:00 | logout
Run Code Online (Sandbox Code Playgroud)

客户端想要计算用户在选定日期内登录所花费的时间。在做一些案例研究时,我能够计算出第一次登录/注销之间的时间:

SELECT
  TIMEDIFF(
    (SELECT timelog FROM qc_user_status_logs WHERE status = 'logout' AND user_id = '472' AND timelog LIKE '2017-07-18%' LIMIT 0,1),
    (SELECT timelog FROM qc_user_status_logs WHERE status = 'login' …
Run Code Online (Sandbox Code Playgroud)

mysql

4
推荐指数
1
解决办法
1417
查看次数

标签 统计

mysql ×1