總結一些目前遇到的,對日期範圍的查詢,
總共遇到幾種分別記錄下處理方式;
①:前端傳入日期參數格式: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在開始時間和結束時間的範圍數據