Проблема с вычислением времени сдвига

#php #mysql #weblogic #logic

#php #mysql #weblogic #Логические

Вопрос:

Я пытаюсь получить сдвиг на основе текущего времени. у меня есть мастер смены, у которого есть время от начала до конца. Время сдвига выглядит следующим образом.

 A - 06:00  --  14:00
B - 14:00  --  22:00
C - 22:00  --  06:00
  

я получу первые две смены на основе текущего времени. Но я не получаю третью смену.
например, если текущее время равно 01.30, то я должен получить «C» как out

Комментарии:

1. Вы забыли добавить некоторый SQL, который показывает вашу текущую попытку.

Ответ №1:

Вам необходимо обрабатывать смены, которые переносятся на следующий день, например

 where
curtime() >= starttime and
curtime() <  if(endtime>starttime,endtime,adddate(endtime,interval 1 day))
  

Ответ №2:

Вы можете добавить другую запись для «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
    )