【发布时间】:2020-04-26 17:31:19
【问题描述】:
我今天对这个 MySQL 声明感到非常沮丧,啊哈。
因此,我需要找出志愿者打卡时间与他们打卡时间之间的分钟数。
在志愿者时钟表中,如果我将 Clock_In 的日期时间设置为与 Clock_Out 相同的 DAY,我可以让任何时间函数工作(TIMEDIFF 等)但是......如果下班日是第二天(例如,如果我在 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
谢谢!!
【问题讨论】: