2017-02-13 8 views
1

私は、ユーザ定義の変数使用することによって、私は私のデータベース内の特定の時間列の累計を表示することができますクエリを持っています。しかし、不正な形式

SET @total_duration := '00:00:00'; 
SELECT duration, (@total_duration := @total_duration + duration) AS cumulative_duration 
FROM tbl_flights 

を結果は次のように表示されます。

enter image description here

私は実行中の合計が正しいですが、それだけでhh:mm:ssのように表示されるようにフォーマットする必要のあるかなり確信しています。誰かが私を助けることができれば、これをどうやって行うのか分かりません。

答えて

3

time_to_secsec_to_time機能を使用してみてください:

order byは、一貫性のある結果を得るために必要とされます。あなたが1つ以上の列の昇順で、この累積和を見つけたいと仮定すると、flight_idを言う:

SET @total_duration := 0; 
SELECT 
    duration, 
    sec_to_time(@total_duration := @total_duration 
       + time_to_sec(duration)) AS cumulative_duration 
FROM tbl_flights 
ORDER BY flight_id -- required to get consistent results 
        -- (change the column name in "order by" as needed.) 
+0

は今完璧な作品、ありがとうございました。それは私にできるときに正しいとマークします。 – sinesine

+0

このクエリで一貫した結果を得るには 'order by'が必要です。 –

+0

@vkp - 良い点。ありがとう:-) – GurV

関連する問題