Php 如何将sql查询返回的平均时间转换为分钟
我正在运行以下查询Php 如何将sql查询返回的平均时间转换为分钟,php,sql,time,duration,milliseconds,Php,Sql,Time,Duration,Milliseconds,我正在运行以下查询 SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(Response_Time))) as avg_time FROM Case_report where Reporting_Time between "'.$fromdate.'" and "'.$todate.'" and Police_Circle="Sadar" 从sql中得到的正确结果为“00:19:35.6000” 我需要在总分钟内得到结果,比如20分钟,你可以在PHP中使用一个简单的
SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(Response_Time))) as avg_time
FROM Case_report
where Reporting_Time between "'.$fromdate.'" and "'.$todate.'"
and Police_Circle="Sadar"
从sql中得到的正确结果为“00:19:35.6000”
我需要在总分钟内得到结果,比如20分钟,你可以在PHP中使用一个简单的函数,比如:
function getMinutes($timestring){
$tmp = explode(':',str_replace('.','',$timestring));
$minutes = (int)$tmp[0] * 60 + ceil($tmp[1].'.'.$tmp[2]);
return $minutes;
}
$s = '00:19:35.6000';
$s2 = '01:19:35.6000';
echo getMinutes($s);
echo PHP_EOL;
echo getMinutes($s2);
输出:
20
80
您可以在PHP中使用以下简单函数:
function getMinutes($timestring){
$tmp = explode(':',str_replace('.','',$timestring));
$minutes = (int)$tmp[0] * 60 + ceil($tmp[1].'.'.$tmp[2]);
return $minutes;
}
$s = '00:19:35.6000';
$s2 = '01:19:35.6000';
echo getMinutes($s);
echo PHP_EOL;
echo getMinutes($s2);
输出:
20
80
在SQL的这一部分中,您将总秒数转换为一个时间,这就是您将输出作为时间的原因:
SEC_TO_TIME(AVG(TIME_TO_SEC(Response_Time)))
不要将结果转换回时间,只需将秒数除以60,然后将数字四舍五入即可得到总分钟数:
ROUND(AVG(TIME_TO_SEC(Response_Time)) / 60)
在原始SQL语句中:
SELECT ROUND(AVG(TIME_TO_SEC(Response_Time)) / 60) AS avg_time
FROM Case_report
where Reporting_Time between "'.$fromdate.'" and "'.$todate.'"
and Police_Circle="Sadar"
在SQL的这一部分中,您将总秒数转换为时间,这就是您将输出作为时间的原因:
SEC_TO_TIME(AVG(TIME_TO_SEC(Response_Time)))
不要将结果转换回时间,只需将秒数除以60,然后将数字四舍五入即可得到总分钟数:
ROUND(AVG(TIME_TO_SEC(Response_Time)) / 60)
在原始SQL语句中:
SELECT ROUND(AVG(TIME_TO_SEC(Response_Time)) / 60) AS avg_time
FROM Case_report
where Reporting_Time between "'.$fromdate.'" and "'.$todate.'"
and Police_Circle="Sadar"
您使用的是哪种数据库管理系统?(说到日期/时间,许多产品远远不符合ANSI SQL。)您使用的是哪种dbms?(说到日期/时间,许多产品远远不符合ANSI SQL。)非常感谢,我需要的时候做得很好,非常感谢,我需要的时候做得很好,非常感谢