2011-04-07 96 views
2

我想根據當前時間換班。我有一個班長,有開始時間結束時間。換檔時間如下。移位時間計算問題

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

我會根據當前時間獲得前兩個班次。但我沒有得到第三個轉變。 例如如果當前時間是01.30的話,我應該得到「C」作爲出

+0

您忘了添加一些顯示您當前嘗試的SQL。 – Tomalak 2011-04-07 07:35:19

回答

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 
    ) 
+0

+1有趣的邏輯 – RichardTheKiwi 2011-04-07 07:56:17

1

你需要處理換班,換到第二天,例如

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