获取一天中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