MYSQL中的VARCHAR DATATYPE或TIME DATATYPE的行

时间:2013-09-20 18:57:49

标签: php mysql

我的表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']);
      } ?>

2 个答案:

答案 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);
}