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中执行此操作,但无法使用单个查询执行此操作.
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`使得创建每个不同用户的总和.