
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 可能我描述的不够清晰,时间的交集、并集都需要把结果查询出来。 |