我因一个问题被绞死可能是由于我缺乏专业知识。我有以下mysql表:
Fdname - fcode - 时间状态 - 状态
大学104 2015-03-05 01:37:00 OFF
大学104 2015-03-05 01:42:00 ON
大学104 2015-03-05 01:55:00 OFF
大学104 2015-03-05 02:00:00 ON
大学104 2015-03-05 07:20:00 OFF
大学104 2015-03-05 07:22:00 ON
大学104 2015-03-05 10:17:00 OFF
大学104 2015-03-05 11:16:00 ON
University 104 2015-03-05 12:17:00 OFF
University 104 2015-03-05 13:17:00 ON
University 104 2015-03-05 15:19:00 OFF
University 104 2015-03-05 16:16:00 ON
University 104 2015-03-05 18:16:00 OFF
University 104 2015-03-05 20:16:00 ON
大学104 2015-03-05 21:17:00关闭
大学104 2015-03-05 22:18:00 ON
我需要计算每个州的累计总分钟数' OFF'和' ON'每小时一小时。即我应该知道fname在每小时内保持关闭多少分钟。我在php中尝试了很多,但可以找到任何线索。任何身体可以帮助或建议查询或PHP脚本。我真的很感激。
答案 0 :(得分:1)
考虑到$rs
是您的相应查询的结果,我相信这将为您提供您正在寻找的结果。
$ontime = NULL;
$offtime = NULL;
$totalseconds = 0;
while($r = mysql_fetch_array($rs)){
if($r["status"] == "OFF"){
$offtime = strtotime($r["timestate"]);
}
if($r["status"] == "ON" AND $offtime !== NULL){
$ontime = strtotime($r["timestate"]);
$totalseconds += $ontime - $offtime;
$offtime=NULL;
$ontime=NULL;
}
}
$totalseconds
将在几秒钟内保留您的总停机时间