1

我有一个表格,其中包含两个字段,描述了每家商店的营业时间——“从”和“到”以 24 小时格式整数表示。我创建了一个搜索页面,允许用户查找在给定时间营业的商店。

我真的不知道如何创建 SQL 查询,主要问题是有两种情况。

一种情况是 from 值大于 to 值,例如从 23 到 5,它给出两个区间 23 到 24 和 1 到 5。

第二种情况是当值大于值(比如从 8 到 22)时,我得到一个区间。

知道如何创建在这两种情况下都可以使用的查询吗?

4

1 回答 1

1

让我们假设这个表模式:

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

解释

从以下商店中选择所有字段:

  • 开始营业时间 > 关闭营业时间,您的营业时间介于两者之间。
  • 或者
  • 开始营业时间 < 关闭营业时间,您的营业时间介于营业时间和 24 小时或 1 小时和关闭时间之间。
于 2012-09-02T22:22:35.490 回答