<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("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));