0

私のテーブルには「TIME」タイプの列があります。会社 a の次の値を持つ 2 つの行があります。

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

各会社には2行あると思います。次に、このクエリが役立つ場合があります。

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 に答える