我正在尝试计算每个用户的小时数。一位用户每天可以检查和检查多次。多个记录的时间戳处理
除了事件检查和签出,我还有两个(业务和私人)。
如果用户在同一天的最后一次CHECK OUT和最后一次CHECK IN之间有事件BUSINESS,则最后一次CHECK OUT和CHECK IN之间的时间将被视为工作时间。
如果CHECK OUT后他有一个BUSINESS事件作为最后一条记录,它将计算小时数(退房时间 - CHECK IN + BUSINESS = 8)。
在表中我有一个地方可以为每个用户记录事件。
CASE 1
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 BUSINESS
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
根据上面的表格,我应该得到的是用户对特定天累计工作8小时。
CASE 2
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 PRIVATE
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
在上述上次检出(ID 2)和最近检查之间的时间的情况下在(ID 3)不工作时间计数。
我想使脚本来计算每个员工在每月的每一天的工作时间。
我在如何用最近的CHECK_IN减去CHECK_OUT时间时遇到问题,当用户有一天有多个记录时会发生该问题。
有往往不是一个“ “CHECK_OUT”条目和以下“CHECK_IN”条目之间的“BUSINESS”或“PRIVATE”条目? –
它可以是BUSINESS或PRIVATE全天,如果是业务,那么当天用户将获得8小时,如果PRIVATE用户将获得当天0小时。但是如果他离开工作,那么首先总是CHECK_OUT条目,如果他回来工作CHECK_IN。但是每天可以有更多的业务分录 – user3651819
似乎有很多逻辑特定于您的案例。你应该先尝试解决这个问题,然后在遇到困难时询问具体的问题。说“我不知道从哪里开始”(这是我从你的问题中得到的感觉)在这里并不适合。 –