前端发送过来的是string类型的时间戳,使用 @DateTimeFormat将string类型转换为指定类型的date类型。
/* public ApiResult countBySiteId(Integer siteId,HttpSession session){*/
public ApiResult countBySiteId(Integer siteId,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
HttpSession session) throws ParseException {
// 定义一个map来封装参数。然后直接传递给map做参数
Map<String ,Object> hashMap = new HashMap();
hashMap.put("siteId",siteId);
hashMap.put("startTime",startTime);
hashMap.put("endTime",endTime);
mapper中mysql比较的时候:
<if test="startTime != null and startTime !=''">
<![CDATA[ and publish_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%T:%s') ]]>
</if>
<if test="endTime != null and endTime!=''">
<![CDATA[ and publish_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d %H:%T:%s') ]]>
</if>
当前端传过来的是string类型的时间戳,这时的sql:
<if test="null!=startTime and ''!=startTime">
<![CDATA[ and unix_timestamp(apply_time)> unix_timestamp(#{startTime,jdbcType=VARCHAR})]]>
</if>
<if test="null!=endTime and ''!=endTime">
<![CDATA[ and unix_timestamp(apply_time)<unix_timestamp(#{endTime,jdbcType=VARCHAR})]]>
</if>