Извините, что беспокою вас снова, но я столкнулся с проблемой. Я изменил первый запрос, который вы написали:
$sql = select a.*, TIMEDIFF(time_out_1, time_in_1) diff_time_1, TIMEDIFF(time_out_2, time_in_2) diff_time_2,
ADDTIME( TIMEDIFF(time_out_1, time_in_1), TIMEDIFF(time_out_2, time_in_2)) diff_time_1_and_2
from
(
select TIME('08:00:00') time_in_1, TIME('12:00:00') time_out_1, TIME('13:10:05') time_in_2, TIME('17:00:00') time_out_2
union all
select TIME('08:00:00') time_in_1, TIME('12:00:00') time_out_1, TIME('13:00:00') time_in_2, TIME('17:00:00') time_out_2
) as a;
to:
SELECT *,
TIMEDIFF(timeout1, timein1) diff_time_1,
TIMEDIFF(timeout2, timein2) diff_time_2,
ADDTIME( TIMEDIFF(timeout1, timein1), TIMEDIFF(timeout2, timein2)) diff_time_1_and_2,
TIME(timein1) time_in_1,
TIME(timeout1) time_out_1,
TIME(timein2) time_in_2,
TIME(timeout2) time_out_2
FROM tblemptimelog
WHERE empid = 1832 ORDER BY workdate
, и все работало так же, как ваш. Однако, когда я пытался изменить второй запрос, чтобы получить общее время, я не получаю правильные результаты. Вот что я изменил ваш исходный второй запрос:
SELECT *,
TIMEDIFF(timeout1, timein1) diff_time_1,
TIMEDIFF(timeout2, timein2) diff_time_2,
ADDTIME( TIMEDIFF(timeout1, timein1), TIMEDIFF(timeout2, timein2)) diff_time_1_and_2,
SEC_TO_TIME(SUM(TIME_TO_SEC(diff_time_1_and_2))) total_time,
TIME(timein1) time_in_1, TIME(timeout1) time_out_1,
TIME(timein2) time_in_2, TIME(timeout2) time_out_2
FROM tblemptimelog
WHERE empid = 1832 ORDER BY workdate
Я получаю сообщение об ошибке: Ошибка: неизвестный столбец 'diff_time_1_and_2' в 'списке полей'