Я сегодня очень расстроен этим MySQL заявлением, ага.
Так что мне нужно найти количество минут между моментом, когда добровольцы включились, и временем, когда они завершились.
В таблице волонтеров_временной синхронизации, если я установлю дату и время Clock_In на тот же день, что и Clock_Out, я смогу заставить работать любую функцию времени (TIMEDIFF, et c.), Однако ... Если часы выходной день - следующий день (например, если я работал в 2020-04-26 в 12:00:00 и выключился в 2020-04-27 в 12:00:00), следующий код должен вернуть 1440, так как он будет 60 * 24, но не возвращает никаких записей.
Вот заявление, которое я использую:
SELECT
A1.volunteer_id,
A1.datetime AS check_in_at,
A2.datetime AS check_out_at,
ROUND(time_to_sec((TIMEDIFF(A2.datetime, A1.datetime))) / 60) AS total_time
FROM
volunteer_timeclock AS A1
INNER JOIN volunteer_timeclock AS A2
ON A1.volunteer_id = A2.volunteer_id
AND DATE(A1.datetime) = DATE(A2.datetime)
WHERE A1.status = 'clock_in'
AND A2.status = 'clock_out'
AND DATE(A1.datetime) BETWEEN '2020-01-1'
AND '2020-12-31'
AND DATE(A2.datetime) BETWEEN '2020-01-1'
AND '2020-12-31'
AND A1.volunteer_id = '25'
ORDER BY A1.datetime DESC
Спасибо !!