我的表CalTime有一个Timespent列,它是Time数据类型。它以HH:MM:SS格式存储值。请建议如何汇总此列的值。
Timespent
_______
00:07:00
01:05:00
00:49:00
我想像02:01:00那样打印总数。
我想知道是否有替代方案使用php ..
PS:我尝试使用php,将每个列值(在while循环中)转换为使用strtotime的时间戳,然后添加它们并将它们转换回所需格式为HH:MM:SS使用日期('H:i: S')。这似乎不起作用。代码看起来像这样。 <?php while(...)
{
$ts += strtotime($timeCal['timespent']);
} ?>
答案 0 :(得分:3)
在几秒钟内转换它,然后加总,然后再回到时间:
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `timespent` ) ) ) AS timeSum
FROM CalTime
答案 1 :(得分:1)
这是一个简单的功能。您可以循环遍历数组中的值以继续添加以下代码。
//Incase strtotime gives any errors
date_default_timezone_set('America/New_York');
//
$mytime1 = "00:07:00";
$mytime2 = "01:05:00";
$secs = strtotime($mytime2)-strtotime("00:00:00");
$result = date("H:i:s",strtotime($mytime1)+$secs);
Psuedocode循环中的示例。
在php数组中返回mysql结果
$mytime1 = $myTimeArray[0];
$result = 0;
for($i=0;i<sizeOf($myTimeArray;$i++)) {
$secs = strtotime($mytime[$i])-strtotime("00:00:00");
$result + = date("H:i:s",strtotime($mytime1)+$secs);
}