全表扫描是否头疼是由你需要返回的订单列表数量决定的。大结果集全表扫描效率比较高。小结果集索引效率比较高。 =========================== 日期处理 从一个类里去除 类型为Integer的字段 TNotesCalendarTimer tct=(TNotesCalendarTimer)timeList.get(0); Calendar date = Calendar.getInstance(); date.set(Calendar.HOUR_OF_DAY,tct.getTimerhour().intValue()); date.set(Calendar.MINUTE,tct.getTimerminute().intValue()); date.set(Calendar.SECOND, 0); Date datestar = date.getTime(); ------------------------ TNotesCalendarTimer tct=(TNotesCalendarTimer)timeList2.get(0); Calendar date2 = Calendar.getInstance(); int day2 = date2.get(Calendar.DAY_OF_YEAR); date2.set(Calendar.DAY_OF_YEAR, day2+1); date2.set(Calendar.HOUR_OF_DAY,tct.getTimerhour().intValue()); date2.set(Calendar.MINUTE,tct.getTimerminute().intValue()); date2.set(Calendar.SECOND, 0); Date datestarnext = date2.getTime(); ------------------------- 最新日期加减运算方式 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Demo { /** * @author zhangjunk * @version Sep 6, 2010 10:45:20 AM * @param args * TODO: */ public static void main(String[] args) { Calendar date2 = Calendar.getInstance(); int day2 = date2.get(Calendar.DAY_OF_YEAR); Date datestarnext = date2.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String curr_date = sdf.format(datestarnext); System.out.println("日期格式:"+date2.getTime()+" 字符串格式: "+curr_date); date2.set(Calendar.DAY_OF_YEAR, day2+1);//日期加1 Date datestarnext1 = date2.getTime(); String add_date = sdf.format(datestarnext1); System.out.println("日期格式:"+date2.getTime() +" 字符串格式: "+add_date); } } ====================== SQL 语句: select distinct t.empid from T_NOTES_CALENDARINFO t where '"+str+"' between t.stardate and t.enddate" //查询在日期范围内的数据,且不重复。t.stardate and t.enddate 都是日期格式