Вопрос расчета времени смены - PullRequest
2 голосов
/ 07 апреля 2011

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

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

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

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

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

where
curtime() >= starttime and
curtime() <  if(endtime>starttime,endtime,adddate(endtime,interval 1 day))
1 голос
/ 07 апреля 2011

Вы можете добавить еще одну запись для "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
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...