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

         

}