MYSQL 中 VARCHAR 数据类型或时间数据类型的总和行


SUM ROWS OF VARCHAR DATATYPE or TIME DATATYPE in MYSQL

我的表 CalTime 有一列 TimeSpend,其数据类型为 Time。 它以HH:MM:SS格式存储值。 请建议如何对此列的值求和。

   Timespent
    _______
    00:07:00
    01:05:00
    00:49:00

我想像这样打印总数 02:01:00。

我想知道是否有使用 php 的替代方案。

PS:我尝试使用 php 执行此操作,使用 strtotime 将每个列值(在 while 循环中)转换为时间戳,然后添加它们并将它们转换为所需的格式,如 HH:MM:SS 使用 date('H:i:s')。 这似乎行不通。 代码看起来像这样。

     <?php   while(...)
      {
      $ts += strtotime($timeCal['timespent']);
      } ?>

在几秒钟内转换它,然后求和,然后回到时间:

SELECT  SEC_TO_TIME( SUM( TIME_TO_SEC( `timespent` ) ) ) AS timeSum  
FROM CalTime

这是一个简单的功能。您可以循环访问数组中的值以继续添加到以下代码中。

//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);

循环中的伪代码示例。
在 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);
}