我试图想出添加员工时钟总时间的最佳方法。可能的方法来查询mysql以计算一天中的总工作时间
的INOUT类型为S & E.
我在想这样的事情可能是最好的解决办法,但我不知道它的实用性,甚至可能:
例如:
No EnNo INOUT DateTime
1 12 S 2017-06-02 08:35
2 28 S 2017-06-02 10:10
3 28 E 2017-06-02 13:00
4 12 E 2017-06-02 14:02
5 12 S 2017-06-02 15:03
6 12 E 2017-06-02 18:09
所以在这个例子中,我可以尝试计算工作时间的总时间。再一次,我不知道这是否可能。
我真的很感谢任何意见/建议,关于如何做到这一点,或任何其他方式可能更实际这样做!
查询是这样的:
$query = "SELECT EnNo,
sum(case
when INOUT = 'E' then -DATEDIFF(MINUTE,2017-06-02,DateTime)
when INOUT = 'S' then DATEDIFF(MINUTE,2017-06-02,DateTime)
end
)/60 as Working Hours
From `dataimport`
Group By dataimport.EnNo";
但结果不产生..
您可能想要检查反引用的不完整用法 – RiggsFolly
在这种情况下,您必须使用INOUT ='S''来引发查询返回记录,并且获取具有E且大于S记录的get子查询然后计算差异,然后你会得到工作时间 –
我建议你应该做一些改变你的表结构,以获得更好,更快的结果 –