2017-02-13 163 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需要得到一致的結果。假設你想找到一個或多個列的遞增順序此累積總和,說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