我正在處理(對我來說)巨大的SQL問題。我有一張名爲「timeshifts」的表格,其中有4列: id,name,from和to。最後兩個類型是TIME。SQL處理午夜
現在:我有三個timeshifts: 06:00 - 14:00 14:00 - 22:00 22:00 - 06:00
現在,我必須找到當前時間正確移(它像一個魅力),但我找不到屬於當前轉變的適當記錄。 IE瀏覽器。名爲user_times的表包含具有單獨的日期和時間值的字段。根據目前的時間轉換,我必須找到屬於時間轉換的記錄。前兩班沒有問題,但第三個是午夜,這是我的問題。
這裏是通過午夜找到合適的移位,事件查詢:
SELECT
FLOOR(SUM(time_sum)/60) AS th,
MOD(SUM(time_sum), 60) AS tm,
t.*
FROM
ur_user_times ut,
ur_timeshifts t
WHERE CURTIME() >= IF (
t.timeshift_to < t.timeshift_from,
0,
ADDTIME(t.timeshift_from, "00:15")
)
AND CURTIME() <= ADDTIME(
IF (
t.timeshift_to < t.timeshift_from,
ADDTIME(t.timeshift_from, "10:00:00"),
t.timeshift_to
),
"00:15"
)
AND ut.`date` BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()
AND ut.`start` BETWEEN ADDTIME(t.`timeshift_from`, "-10:00:00") AND ADDTIME(t.`timeshift_to`, "-10:00:00")
AND ut.user_id = 40
ut.start是我們感興趣的時間價值。
什麼是你的問題?它看起來像你已經有一個查詢,做你想做的。 –
沒有。它沒有。讓我們假設我們有02:32(上午)。它應該在22:00到06:00之間找到記錄,但MySQL不會在22:00以上(通過午夜)檢查,但向下。 – Mateusz
你說:「這是查詢發現適當的轉變,通過午夜的事件」。所以,再一次:你的問題是什麼? –