日报选择时候,日期类型不一致,存储过程是datetime类型输入,而数据表中deal_time是smalldatetime类型,所以smalldatetime between 输入的那两个类型datetime.
jsp页面可供输入的都是date类型,如2013-11-15,传递到java类中为string类型数据,需要进行时间的相加,则考虑为string字符串相加,形式为jsp传递回的date+空格+hh:mm:ss,这样才能实现date变化为datetime类型数据的目的。
选择起始日期:2013-11-15 2013-11-16
选择月:2013-10-20 2013-11-19
选择周:2013-11-11 2013-11-18
publicsynchronized TimeVO getBEDay(String time, String st, String et){
//time是标志位,标志是哪一种选择
TimeVO tvo= new TimeVO();
if ("1".equals(time)){
//日报
String begindt = st+""+"00:00:00";
String enddt = et+""+"23:59:59";
tvo.setStartday(begindt);
tvo.setEndday(enddt);
}else if("2".equals(time)){
//周报,截止日期等于选定日期加上7天
String begindt = st+""+"00:00:00";
tvo.setStartday(begindt);
Date date=null;
Calendar c =Calendar.getInstance();
try {
date = newSimpleDateFormat("yyyy-MM-dd").parse(st);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 7);
String weekday = newSimpleDateFormat("yyyy-MM-dd").format(c.getTime());
String enddt = weekday+""+"00:00:00";
tvo.setEndday(enddt);
}else if("3".equals(time)){
//月报
tvo=dao.getBEDay(st, et);
}else if("4".equals(time)){
String begindt = st+""+"00:00:00";
String enddt = et+""+"00:00:00";
tvo.setStartday(begindt);
tvo.setEndday(enddt);
System.out.println(begindt+enddt);
}
return tvo;
}