获得一天工作的总小时数mysql

Ull*_*kar 13 mysql sql datetime

我有一个MySQL表,记录员工登录和注销时间.在输入输出列1中表示登录,0表示注销.

  [id]   [User_id]           [Date_time]                 [in_out]
    1       1          2011-01-20 09:30:03                  1
    2       1          2011-01-20 11:30:43                  0
    3       1          2011-01-20 11:45:12                  1
    4       1          2011-01-20 12:59:56                  0
    5       1          2011-01-20 13:33:11                  1
    6       1          2011-01-20 15:38:16                  0
    7       1          2011-01-20 15:46:23                  1
    8       1          2011-01-20 17:42:45                  0
Run Code Online (Sandbox Code Playgroud)

是否可以使用单个查询检索用户在一天中工作的总小时数?

我尝试了很多但都徒劳无功.我可以使用数组在PHP中执行此操作,但无法使用单个查询执行此操作.

Rud*_*udi 5

SELECT `User_id`, time(sum(`Date_time`*(1-2*`in_out`)))
  FROM `whatever_table` GROUP BY `User_id`;
Run Code Online (Sandbox Code Playgroud)

(1-2*`in_out`)术语为每个登录事件提供-1因子,每个注销事件为+1因子.该sum函数获取Date_time列的总和,GROUP BY`User_id`使得创建每个不同用户的总和.