我有一个表格,其中包含两个字段,描述了每家商店的营业时间——“从”和“到”以 24 小时格式整数表示。我创建了一个搜索页面,允许用户查找在给定时间营业的商店。
我真的不知道如何创建 SQL 查询,主要问题是有两种情况。
一种情况是 from 值大于 to 值,例如从 23 到 5,它给出两个区间 23 到 24 和 1 到 5。
第二种情况是当值大于值(比如从 8 到 22)时,我得到一个区间。
知道如何创建在这两种情况下都可以使用的查询吗?
让我们假设这个表模式:
store
id fromH toH
1 23 5
2 8 22
和一个参数@T(你正在寻找的时间)
然后选择是:
select *
from store
where
( fromH < toH and @t between fromH and toH ) or
( fromH > toH and
(@t between fromH and 24 OR
(@t between 1 and toH )
)
解释
从以下商店中选择所有字段: