表1
id 起始时间 截止时间
1 2008-8-1 2008-8-20
2 2008-5-1 2008-5-20
已知一个时间段a到b,求表里面与该时间段交叉的记录
比如,2008-7-5--2008-8-5 与 2008-8-1---2008-8-20 就算时间交叉
我已经知道一种写法就是
where (起始时间 between a and b) or (截止时间 between a and b) or
(a between 起始时间 and 截止时间) or (b between 起始时间 and 截止时间)
不知道有没有更好的写法
liuleiqt 的回答是有问题的,交叉也包含包括和被包括,你的语句有些情况会漏掉
sqlserver 时间段交叉查询语句(最简短的)
答案:2 悬赏:50 手机版
解决时间 2021-03-08 18:18
- 提问者网友:兔牙战士
- 2021-03-08 06:21
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-03-08 07:51
你说的对,少一种情况(ab在起至时间之间的)。
where (起始时间 between a and b) or (截止时间 between a and b) or (a between 起始时间 and截止时间)
where (起始时间 between a and b) or (截止时间 between a and b) or (a between 起始时间 and截止时间)
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-03-08 08:15
select * from where 时间字段>'2017-1-1' and 时间字段<'2017-4-1'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯