Я хочу получить общее количество часов в данном месяце, оно может быть больше 1000 часов. У меня уже есть запрос суммы времени, но он ограничен 839: 59: 59. Как игнорировать или каким-либо другим способом выполнить эту задачу. (ot_hours store в VARCHAR
тип данных)
Попробуйте запрос
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `ot_hour` ) ) ) AS timeSum
FROM groupotrequest
INNER JOIN department
ON department.dept_Id = groupotrequest.dept_Id
WHERE groupotrequest.dept_Id = $dept_Id AND month LIKE '$passmonth%' AND overtime_status=6
Пример данных
id month ot_hour dept_Id overtime_status overtime_type date
1 2019-10 2535:00:00 28 6 main_ot 2019-11-21 07:26:00
2 2019-11 2535:00:00 28 6 main_ot 2019-11-21 07:27:00
3 2019-10 20:00 28 6 sub_ot 2019-11-21 07:28:00
4 2019-11 20:00 28 6 sub_ot 2019-11-21 07:30:00
я хочу получить 2019-11 итого otчасы как 2555: 00: 00
function GetApprovedOt($connect,$dept_Id,$passmonth)
{
$query01 =$connect->prepare('SELECT SUM( TIME_TO_SEC( `ot_hour` ))
FROM groupotrequest
INNER JOIN department
ON department.dept_Id = groupotrequest.dept_Id
WHERE groupotrequest.dept_Id = :dept_Id AND month LIKE :passmonth% AND overtime_status=6');
$query01->execute([
':passmonth' => $passmonth,
':dept_Id' => $dept_Id
]);
list ($totalMins, $remngSecs) = gmp_div_qr($query01->fetchColumn(), 60);
list ($totalHour, $remngMins) = gmp_div_qr($totalMins, 60);
echo "Worked a total of $totalHour:$remngMins:$remngSecs.";
}
я тоже так пробую. это тоже не работает