我有一张table,上面有餐厅的营业时间和关门时间。我需要一个sql查询来选择一个特定业务的开放或关闭状态范围内的日期。
表格:
id tbl_index_id dow status starttime endtime
1 1 Monday Closed
2 1 Tuesday Open 8.00 17.00
3 1 Wednesday Open 8.00 17.00
4 1 Thursday Open 8.00 17.00
5 1 Friday Open 8.00 17.00
6 1 Saturday Open 8.00 17.00
7 1 Sunday Closed
tabl\u index\u id是餐厅的外键。我知道,名字很好笑,但这是有原因的。
我需要的是:
开放时间:周二-周六:08:00 am-05:00 pm周六和周日:关闭
我能想到的唯一解决办法是:
SELECT DoW as openDays, start_time, end_time from tbl_businesshrs WHERE
tbl_businesshrs.tbl_index_id = 1 and status = 'Open' GROUP BY DoW
请帮忙。我真的搞不懂这个。
2条答案
按热度按时间cu6pst1q1#
这就是我提出的解决方案:
以及输出:
4xy9mtcn2#
一个通用的解决方案有点棘手,但只是为了好玩,这里有一个基于派生的复合“timekey”使用变量来计算块数和行号,然后连接
还有你的样本数据
注意,我们总是将块号与块号连接起来,行号=1