0

我的表有一个“TIME”类型的列。它有 2 行,公司 a 具有以下值: 04:30:00 04:30:00 我希望使用代码将这 2 行总共写入 csv 文件

enter code here

$sql2 = "SELECT company, SUM(intervalTime) 
   INTO OUTFILE 'd:/myfile/xxx.csv'
   FIELDS TERMINATED BY ','
   FROM june2013 GROUP BY company";  

     if (mysqli_query($con,$sql2))
    {
    echo "Summary added to text file successfully";
    }
    else
   {
     echo "Error transferring summary " . mysqli_error($con);
    }

结果被传输到具有以下值的 csv 文件:公司 a 86000 公司 b 420000 公司 c 292000

04:30:00 + 04:30:00 的总时间应为 9 小时。我总共得到了 4300 + 4300。知道如何解决这个问题吗?非常感谢 !

4

2 回答 2

1

您不能只对这样的时间列求和,您需要先将其转换为数值(数学适用于数字)。

尝试这个:

$sql2 = "SELECT company, SEC_TO_TIME( SUM( TIME_TO_SEC( intervalTime ) ) ) 
   INTO OUTFILE 'd:/myfile/xxx.csv'
   FIELDS TERMINATED BY ','
   FROM june2013 GROUP BY company";
于 2013-08-01T12:33:51.633 回答
0

我假设每个公司有两行。然后,此查询可能会有所帮助:

select
    t1.company AS com,
    addtime(
        (select intervalTime from june2013 AS t2 where t2.company = t1.company LIMIT 1),
    (select intervalTime from june2013 AS t2 where t2.company = t1.company LIMIT 1, 1)
) AS dif
into outfile 'd:/myfile/xxx.csv'
FIELDS TERMINATED BY ','
from june2013 as t1
group by t1.company;

日期使用函数 addtime(time1, time2) 正确求和。请参阅 mysql 文档。

于 2013-08-01T12:46:10.783 回答