我需要一个查询来从有 2 列的表中获取结果
Column startdt (datetime), Column enddt (datetime) 有一些记录 startdt 2013-07-19 和 enddt 2013-07-29
我需要获取工作日 = 1(星期二)
的记录 日期为 2013-07-19 的记录是工作日 4,结束时间为 2013-07-29,即 0
实际上我想得到周一或另一个工作日的结果。
您可以查看上面的链接以获取示例 http://sqlfiddle.com/#!2/a80ce/1
如果你不明白我想做什么让我解释一下。我有一个从 7 月 15 日开始到 7 月 25 日结束的活动。(从星期一开始,星期四结束)用户选择一个工作日(星期一、星期二等)。如果他选择星期二,那么我想要查询将获取星期二活动的所有事件。
我已经找到了答案,所以如果有人想检查它
SELECT articleid,startdt,enddt,dayofweek(startdt), DATEDIFF(enddt,startdt) datedf
FROM events
WHERE (dayofweek(events.startdt) <= 3 AND dayofweek(events.enddt) >= 3)
OR DATEDIFF(enddt,startdt) >=6
(3 是工作日“星期二”的编号)