gpt4 book ai didi

mysql - SQL处理午夜

转载 作者:行者123 更新时间:2023-11-29 05:33:28 25 4
gpt4 key购买 nike

我正在处理(对我而言)巨大的 SQL 问题。我有一个名为“timeshifts”的表,它有 4 列:ID、姓名、从和到。最后两个类型是 TIME。

现在:我有三个时移:06:00 - 14:0014:00 - 22:0022: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 是我们感兴趣的时间值。

最佳答案

试试这个:

select *
from timeshifts ts,
usertimes ut
where
(ts.from < ts.to and ut.start >= ts.from and ut.start <= ts.to) OR
(ts.from > ts.to and (ut.start >= ts.from or ut.start <= ts.to))

关于mysql - SQL处理午夜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com