2011-04-25 46 views
0

我試圖從我的數據庫中的幾個不同列總計所有timesdate,但是當每個總數超過24小時 - 我只得到00:00打印,而不是實際總數。從一個mysql列總計時間

我知道PHP日期「H」變量只覆蓋了00-23,所以我不確定最好的方式去做這件事。任何幫助將非常感激。

我的SQL選擇的代碼是:

SEC_TO_TIME(SUM(TIME_TO_SEC(lunch))) AS lunch, 
SEC_TO_TIME(SUM(TIME_TO_SEC(overtime))) AS overtime, 
SEC_TO_TIME(SUM(TIME_TO_SEC(day_paid))) AS day_paid, 
SEC_TO_TIME(SUM(TIME_TO_SEC(lunch))) AS lunch, 
SEC_TO_TIME(SUM(TIME_TO_SEC(holiday))) AS holiday, 
SEC_TO_TIME(SUM(TIME_TO_SEC(absence))) AS absence 

我的看法代碼爲「午餐」的一個例子是:

echo date('H:i', strtotime($day_breakdown->day_paid); 

回答

0

你寫的MySQL的代碼是好的,但視圖代碼因爲它設計用於日期/時間而不是相對的時間段,所以不起作用。

你應該除以秒這樣的推導小時/分鐘:通過刪除SEC_TO_TIME部分

$hours = floor($seconds/3600); 
$minutes = floor($seconds/60) % 60; 
+0

就不得不稍稍改變我的SQL爲「SUM(TIME_TO_SEC(午餐))午餐」,但非常好,謝謝:) – 2011-04-25 09:50:40