我的想法有问题,我必须请别人帮助。
我创建了简单的工作时间跟踪系统,并且可以使用该代码管理所有其他事情,但是现在我无法弄清楚如何计算后续数据。

拳头,我有几张桌子,一张可存放四样东西。

index | who | timestamp           | what
1     | 1   | 2016-09-21 08:00:00 | Work
2     | 2   | 2016-09-21 08:01:00 | Work
3     | 1   | 2016-09-21 10:00:00 | Bin
4     | 2   | 2016-09-21 10:00:00 | Bin
5     | 1   | 2016-09-21 10:15:00 | Bout
6     | 2   | 2016-09-21 10:17:00 | Bout
7     | 2   | 2016-09-21 13:00:00 | Bin
8     | 1   | 2016-09-21 13:00:00 | Bin
9     | 1   | 2016-09-21 13:30:00 | Bout
10    | 2   | 2016-09-21 13:30:00 | Bout
11    | 2   | 2016-09-21 15:58:00 | Home
12    | 1   | 2016-09-21 16:05:00 | Home


我可以很好地计算出工作与家庭之间的时间,并为合适的人提供合适的价值。

但是我现在一直在那些休息时间。

我需要计算每个人可能所有的休息时间,这样才能获得一个总时间来花费每个人的休息时间。

因此,当询问第1个人信息时,我需要以下回答:

Who | Time     | Breaktime | Working time
1   | 08:05:00 | 00:45:00  | 07:20:00


也许当有人问特定的一天时所有人都可以来到同一页...

Who | Time     | Breaktime | Working time
1   | 08:05:00 | 00:45:00  | 07:20:00
2   | 07:57:00 | 00:47:00  | 07:10:00


事件总是成对出现。工作->家庭和垃圾箱->比赛。
是的,人数更多,每个人的制动时间可能更多。

这可能是一个糟糕的演示文稿,对此感到抱歉(NooB)。我希望我能提供尽可能多的信息,以帮助他人。但是请问是否有什么要问的。

那是我在工作场所解决一天的总时间时使用的代码。

SELECT TIMEDIFF(
(SELECT timestamp FROM `stamps` WHERE (who like '1' and  DATE (timestamp) like '2016-09-21' and what like 'Home')),
(SELECT timestamp FROM `stamps` WHERE (who like '1' and  DATE (timestamp) like '2016-09-21' and what like 'Work'))
)


但是我不能将它与多个事件一起使用。

最佳答案

那就是我发现的。也许不太好,但是它可以工作=)。

$break = mysqli_query($conn,"SELECT what, timestamp FROM stamps WHERE (who like '$id' and  DATE (timestamp) like '$day' and what like 'B%') ORDER BY timestamp");
 while($row = mysqli_fetch_array($break))
 {
  if ( $row['what'] == "Bin" )
   $start = strtotime( $row['timestamp'] );
  else { $stop = strtotime( $row['timestamp'] );
   $hours += ( $stop - $start );
   }
 }
$btime = gmdate('H:i:s', floor($hours));


$ btime给出00:00:00样式结果。

关于mysql - mysql 5.5.50计算一天多个事件为一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39641861/

10-12 12:50
查看更多