需要对时间数据进行一个增删改查的操作
数据库对应的类型为”time”,字段名为time
java实体类中添加一个java.sql.time类型的time属性与String类型的属性timeString
startTime,startTimeString,EndTime,EndTimeString
startTime、EndTime都是Time类型,正常的getter、setter方法,
startTimeString、EndTimeString的getter、setter需要进行数据处理
public String getStartTimeString() {
return DateUtils.format(startTime, "HH:mm:ss");
}
//startTimeString是null或者''的时候,不能转换为time类型,不然会报空指针异常
public void setStartTimeString(String startTimeString) {
this.startTimeString = startTimeString;
if (StringUtils.isNotBlank(startTsString)) {
try {
this.startTime = new Time(DateUtils.parse(startTimeString, "HH:mm:ss").getTime());
} catch (Exception e) {
logger.debug("" + e.getMessage());
}
}
}
public String getEndTimeString() {
return DateUtils.format(endTime, "HH:mm:ss");
}
//endTimeString是null或者''的时候,不能转换为time类型,不然会报空指针异常
public void setEndTimeString(String endTimeString) {
this.endTimeString = endTimeString;
if (StringUtils.isNotBlank(endTimeString)) {
try {
this.endTs = new Time(DateUtils.parse(endTimeString, "HH:mm:ss").getTime());
} catch (Exception e) {
logger.debug("" + e.getMessage());
}
}
}
jsp中的时间段设置格式为HH:mm:ss,开始时间的WdatePicker的maxdate限制写法:
#F{$dp.$D(\'endTime\');}
结束时间段的maxdate限制的写法,需要加上一个初始的时间限制,不然在没有选择开始时间的情况下选择结束时间会报类似非法时间的错误:
#F{$dp.$D(\'startTime\')||\'00:00:00\';}
sql语句的时间段限制:
开始时间:
<if test="startTime != null">
<![CDATA[
AND TIME_FORMAT(start_time,'%H:%i:%s') >= TIME_FORMAT(#{startTime},'%H:%i:%s')
]]>
</if>
结束时间:
<if test="endTime != null">
<![CDATA[
AND TIME_FORMAT(end_time,'%H:%i:%s') <= TIME_FORMAT(#{endTime},'%H:%i:%s')
]]>
</if>