gpt4 book ai didi

mysql - 选择两次mysql之间的时间

转载 作者:行者123 更新时间:2023-11-29 01:09:56 25 4
gpt4 key购买 nike

我必须检查特定时间是否在两次(打开和关闭时间)之间。

开始和结束时间在数据库中保存为与工作日 ID 相关的“开始”和“结束”,而不是日期。

所以我的问题是,我有两种不同的情况,第一种情况是结束时间大于开始时间,例如 end=19:00:00 和 start=09:00:00

但它也可以是 end=06:00:00 和 start=20:00:00

那么检查时间是否介于两个时间之间的性能方法是什么?

我的 sql 是这样的:

SELECT * 
FROM opening
WHERE weekday_id = :weekday
AND start <= :time
AND end >= :time

最佳答案

没有很好的性能方式来处理这个问题。正确的 where 语句是:

where (start <= end and :time between start and end) or
(end < start and :time not between end and start)

当然,你不一定要用between,你可以把这个扩展出来:

where (start <= end and :time >= start and :time <= end) or
(end < start and (:time <= end or :time >= start))

关于mysql - 选择两次mysql之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053717/

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