获取一天中mysql的总工作时间

我有一个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

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

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

回答:

SELECT `User_id`, time(sum(`Date_time`*(1-2*`in_out`)))

FROM `whatever_table` GROUP BY `User_id`;

(1-2 * in_out)项给每个登录事件一个-1因子,每个退出事件一个+1因子。该sum函数获取Date_time列的总和,然后GROUP

BYUser_id会为每个不同的用户创建总和。

以上是 获取一天中mysql的总工作时间 的全部内容, 来源链接: utcz.com/qa/408074.html

回到顶部