Подсчет времени из колонки MySQL - PullRequest
0 голосов
/ 25 апреля 2011

Я пытаюсь суммировать все временные данные отдельно по нескольким различным столбцам в моей базе данных, однако, когда общее количество для каждого превышает 24 часа - я получаю только 00:00, напечатанное вместо фактического общего числа.

Я понимаю, что 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);

1 Ответ

0 голосов
/ 25 апреля 2011

Код MySQL, который вы написали, хорош, но код представления не будет работать, поскольку он предназначен для работы с датами / временем, а не с относительными периодами времени.

Вы должны получить часы / минуты, разделив секунды следующим образом:

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