我的想法有问题,我必须请别人帮助。
我创建了简单的工作时间跟踪系统,并且可以使用该代码管理所有其他事情,但是现在我无法弄清楚如何计算后续数据。
拳头,我有几张桌子,一张可存放四样东西。
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/