2013-05-28 2 views
0

У меня есть таблица с колонкой «работали часы», и я хочу суммировать все строки, как это:сумма строк часов

08:00 
    02:00 
    03:30 
Total: 13:30 

И это мой SQL выберите код

$sql=mysql_query("SELECT * FROM sohy_works WHERE data_raport = '$data' AND codangajat = '$codangajat' "); 
+0

ли выбранный ответ действительно решение проблемы? – Danijel

ответ

3

Вы можете рассчитать, как это,

SELECT SEC_TO_TIME(SUM(your_time_field)) FROM sohy_works WHERE ..... 
+0

Могу ли я сделать это «SELECT * (ALL) SEC_TO_TIME (SUM (your_time_field)) FROM sohy_works ГДЕ .....? –

2

Получить сумму секунд из БД и преобразования, которые в часах и минутах:

$q = "SELECT SUM(TIME_TO_SEC(worked_hours)) FROM sohy_works WHERE data_raport = '$data' AND codangajat = '$codangajat'"; 

$result = mysql_query($q); 
$sec = mysql_fetch_array($result); 

$hours = floor($sec[0]/3600); 
$minutes = str_pad(floor($sec[0] % 3600/60), 2, '0', STR_PAD_LEFT); 

echo $hours.':'.$minutes; 

EDIT:

Часы и минуты можно вычислить непосредственно с SQL запросом, как:

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(`worked_hours`))) FROM ... 
Смежные вопросы