2017-09-05 9 views
-1

すべて私は、1日にわたって訪問された別々の場所の名前と合計所要時間を含むdurationという名前のMySQLテーブルを持っています。私は時間を合計し、各人のためにそれらを時間、分、秒の形式で示す必要があります。私は正しいSQLコード(ストアドプロシージャを使用しないことを好みます)に苦労しています。 Duration列はTIMEデータ型です。キャスティングとサミングの継続時間の値

Name Duration 

Fred 04:00:20 
John 12:39:10 
Jack 03:59:20 
Stacy 19:17:34 
Stacy 03:39:00 
John 04:20:30 
Jack 00:29:17 
John 03:23:50 
Fred 300:17:29 

Iは、(Akshay Hegdeから)次のSQLを使用している

選択名、SEC_TO_TIME(SUM(time_to_sec(期間)))期間 グループから名前によって、

24時間未満の合計時間(つまり、Jackの合計時間04:28:37、Stacyの合計時間22:56:34)は問題なく動作しますが、24時間を超えると失敗します。

は、悲しいことに、SQLは、(結果が列などで300」の時間のために「悪いフォーマットであっても300時間ではなく、Javaの内)のMySQL Workbenchで正常に動作します。

私は私のように期間をキャストする必要があると考えています炭その後、何とかそれにまとめる。

を高く評価し、任意の支援。

+0

使用しているJava MySQL APIの問題のようですが、24時間以上は理解できません。 – Barmar

答えて

0

あなたのJava APIが24時間を超える時間を理解していないので、文字列に変換してみてください。

select name, CAST(SEC_TO_TIME(SUM(time_to_sec(duration))) AS CHAR) AS total_time 
from duration 
group by name; 
+0

Barmarさん、ありがとうございました。 – Active

関連する問題