<if test="null != protocolEndTime and '' != protocolEndTime">
<![CDATA[
and( (#{protocolStartTime} >= t.protocol_start_time AND #{protocolStartTime} <= t.protocol_end_time) OR
(#{protocolStartTime} <= t.protocol_start_time AND #{protocolEndTime} >= t.protocol_end_time) OR
(#{protocolEndTime} >= t.protocol_start_time AND #{protocolEndTime} <= t.protocol_end_time)
)
]]>
</if>
这就判断你传入的开始时间和结束时间 与库里面 的开始时间和结束时间进行比较 找出时间重叠的,当然这样查出来的包含了你本条的 语句,可以查出多条。
在java 中,可以用 retainAll 进行求交集
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1.add("2");
list1.add("s");
list1.add("2");
list1.add("f");
list2.add("g");
list2.add("c");
list2.add("2");
list2.add("a");
list1.retainAll(list2);
System.out.println(list1.size());
System.out.println(list1.retainAll(list2));
}