总结一些目前遇到的,对日期范围的查询,
总共遇到几种分别记录下处理方式;
①:前端传入日期参数格式:YYYY-MM-DD,如:
{
"startDateStr":"2019-05-16",
"endDateStr":"2019-05-16"
}
而此时数据存的格式为:YYYY-MM-DD hh:mm:ss
这时候我采用的查询方法是直接查询,先将传过来的数据分成两种,1、开始日期=结束日期(也就是查询今天的数据)
2、开始时间不等于结束时间
<if test="query.startDateStr==query.endDateStr and query.startDateStr != null and query.startDateStr != '' and query.endDateStr != null and query.endDateStr != ''">
and DATE_FORMAT( log_operate_time, '%Y-%m-%d' ) = DATE_FORMAT( #{query.startDateStr}, '%Y-%m-%d' )
</if>
<if test="query.startDateStr!=query.endDateStr">
<if test="query.startDateStr != null and query.startDateStr != '' ">
and log_operate_time > DATE_FORMAT( #{query.startDateStr}, '%Y-%m-%d 00:00:00' )
</if>
<if test="query.endDateStr != null and query.endDateStr != '' ">
and log_operate_time < DATE_FORMAT( #{query.endDateStr}, '%Y-%m-%d 23:59:59' )
</if>
</if>
方法①采用先判断传入的 开始时间?=结束时间 要是等于,就查询今天的数据;要是不等于就查询log_operate_time在开始时间和结束时间的范围数据