1
opengps 2020-05-21 16:52:59 +08:00
用 or 条件就行呗?
开始时间早于指定时间 or 结束时间晚于指定时间 |
2
Kylinsun OP @opengps 有想过 or,当我传 start_date=2020-05-10,end_date=2020-05-20 这时候是不应该搜出这条记录的,用 OR 就不行。
|
3
kanezeng 2020-05-21 17:26:53 +08:00
没看懂,
正文说:“客户端传入 start_date=2020-05-01,end_date=2020-05-20 时,这条记录需要被查出来” 二楼说:“我传 start_date=2020-05-10,end_date=2020-05-20 这时候是不应该搜出这条记录的” 所以是需要查出来还是不需要查出来? |
4
kanezeng 2020-05-21 17:27:21 +08:00
哦,后面的 start_date 不同
|
5
fighterlyt 2020-05-21 17:30:06 +08:00
这不是数据库的问题,这是整个逻辑不清的问题,这里很明显,如果记录的时间段和传入的时间段有交叉,那就返回, 应该是 start_date<=结束时间 and end_date>=开始时间
|
6
fighterlyt 2020-05-21 17:31:55 +08:00
给定一个时间段,所有未交叉的只有两种
1. 未开始 start_date> 结束时间 2. 已结束 end_data<开始时间 那么符合要求的,按照结合律,那么是 or 变 and, 条件相反 |
7
kanezeng 2020-05-21 17:32:30 +08:00
结束时间晚于指定开始时间 And 开始时间早于指定结束时间 ?
|
8
fighterlyt 2020-05-21 17:51:59 +08:00
|
9
Kylinsun OP 可能我描述的不够清晰,时间的交集、并集都需要把结果查询出来。
|