计算每个员工的IN-OUT时间

时间:2014-08-11 08:46:07

标签: mysql

我有这张桌子,有员工的时间和时间。问题是我的时间和时间仅在一列中。这是在FILO方法中的第一个进度和最后一个时间进入和超时的员工。

员工及时的表格

样本时间如0347。意味着03:47 ..或1916意味着19:16。军事时间

id | emp_id |     date    | time
 1 |  GP1   | 2014-08-11  | 0847
 2 |  GP3   | 2014-08-11  | 0910
 3 |  GP2   | 2014-08-11  | 0912
 4 |  GP1   | 2014-08-11  | 1247
 5 |  GP2   | 2014-08-11  | 1756
 6 |  GP3   | 2014-08-11  | 1634
 7 |  GP1   | 2014-08-11  | 1650

现在我想让它像

id | emp_id |     date    | time in | time out
 1 |  GP1   | 2014-08-11  | 0847    |  1650
 2 |  GP2   | 2014-08-11  | 0912    |  1756
 3 |  GP3   | 2014-08-11  | 0910    |  1634  

1 个答案:

答案 0 :(得分:0)

SELECT
emp_id, date, min(time), max(time)
FROM your_table
GROUP BY emp_id, date;

我建议您将时间存储在具有数据类型时间的列中。或者更好的是,在日期时间或时间戳列中组合列。并且不要为关键字或函数名称命名列。