簡體   English   中英

MYSQL中VARCHAR DATATYPE或TIME DATATYPE的總和

[英]SUM ROWS OF VARCHAR DATATYPE or TIME DATATYPE in MYSQL

我的表CalTime有一列Timespent,屬於Time數據類型。 它以HH:MM:SS格式存儲值。 請建議如何求和該列的值。

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

我想像這樣打印總數02:01:00。

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

PS:我嘗試使用php進行操作,使用strtotime將每個列值(在while循環中)轉換為時間戳,然后添加它們,並使用date('H:i:s')將其轉換回HH:MM:SS所需的格式。 這似乎不起作用。 代碼看起來像這樣。

     <?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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM