我正在尝试根据当前时间进行换班。我有一个轮班大师,有开始时间到结束时间。换班时间如下。
A - 06:00 -- 14:00
B - 14:00 -- 22:00
C - 22:00 -- 06:00
我将根据当前时间获得前两班。但我没有得到第三班。 例如如果当前时间是01.30那么我应该得到“C”为
答案 0 :(得分:1)
您可以为“C”添加另一条记录,如:
C - 22:00 -- 24:00
C - 00:00 -- 06:00
也可以创建一个有点复杂的SQL:
SELECT shift
FROM table
WHERE end > '1:30'
AND (
start <= '1:30'
OR
start > end
)
答案 1 :(得分:1)
您需要处理换行到第二天的班次,例如
where
curtime() >= starttime and
curtime() < if(endtime>starttime,endtime,adddate(endtime,interval 1 day))