以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 如何用sql语句找出不上班的时段? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147318)
|
-- 作者:sloyy
-- 发布时间:2020/3/13 23:02:00
-- 如何用sql语句找出不上班的时段?
我有一个全年的上班排班表,现在想用sql语句找出不上班的时段,这个SQL语句该怎么写?如图: 2019-01-01 到2019-12-31  此主题相关图片如下:排班表.png  不上班的时段是 1 2019-01-01 到 2019-02-28
2 2019-06-01 到 2019-07-31
3 2019-12-01 到 2019-12-31 第一个时段用 min(工作起始日) 能查得到,第三个字段用 max(工作结束日)能查得到,第二个时段我就没招了,是不是我的思路不对?
|
-- 作者:有点蓝
-- 发布时间:2020/3/13 23:07:00
--
select * from 排班表 where 工作起始日 >=\'2019-01-01\' and工作起始日 <=\'2019-02-28\' or 工作起始日 >=\'2019-06-01\' and工作起始日 <=\'2019-07-31\' or .....
|
-- 作者:sloyy
-- 发布时间:2020/3/13 23:09:00
--
这么简单?我怎么没想到呢 我试试
|
-- 作者:sloyy
-- 发布时间:2020/3/13 23:32:00
--
s elect * from {排班表} where (工作起始日期 >= #2019-01-01# and 工作起始日期 <=#2019-02-28#) or (工作起始日期 >= #2019-06-01# and 工作起始日期 <= #2019-07-31#) or (工作起始日期 >= #2019-12-01# and 工作起始日期 <= #2019-12-31#)
结果是空值
|
-- 作者:sloyy
-- 发布时间:2020/3/14 8:31:00
--
求救
|
-- 作者:有点蓝
-- 发布时间:2020/3/14 9:06:00
--
放到数据库执行,如果不出错,肯定没有符合条件的数据
|
-- 作者:fox-man
-- 发布时间:2020/3/14 9:13:00
--
是不是要这样的结果?
此主题相关图片如下:不上班的时间列表.png

[此贴子已经被作者于2020/3/14 9:15:49编辑过]
|
-- 作者:fox-man
-- 发布时间:2020/3/14 9:23:00
--
应该是这样才正确吧?
此主题相关图片如下:不上班的时间列表.png

|
-- 作者:fox-man
-- 发布时间:2020/3/14 9:23:00
--
应该是这样才正确吧?
 此主题相关图片如下:不上班的时间列表.png 
[此贴子已经被作者于2020/3/14 10:20:21编辑过]
|
-- 作者:sloyy
-- 发布时间:2020/3/14 9:39:00
--
没错,就是要这个结果
我先好好学习你的代码
|