我正在设计一个 SQL 表来存储商店的营业时间。
一些商店的营业时间非常简单:周一至周日上午 9:30 至晚上 10:00
其他的稍微复杂一点。请考虑以下场景:
Monday: Open All Day
Tuesday: 7:30AM – 2:30PM & 4:15PM – 11:00 PM
Wednesday: 7:00PM – 12:30 AM (technically closing on Thursday morning)
Thursday: 9:00AM – 6:00PM
Friday: closed.
你会如何设计 table ?
编辑
营业时间将用于显示商店是否在用户选择的时间营业。
不同的表可能可以处理任何异常,例如假期。
商店营业时间不会每周更改。
最佳答案
像这样的表格对于您发布的输出来说都很容易,而且只是稍微回击一下(打开?是/否):
Store | Day | Open | Closed
---------------------------
1 | 1 | 0000 | 2400
1 | 2 | 0730 | 1430
1 | 2 | 1615 | 2300
...
特征:
要查询您的数据集,只需:
SELECT Day, Open, Close...
(你显然想格式化打开/关闭)要查询 IsOpen?,只需:
SELECT CASE WHEN @desiredtime BETWEEN Open AND Closed THEN 1 ELSE 0 END
FROM table
WHERE store = @Store
关于sql - SQL 表操作设计时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7265190/