问题描述:
准备写一个demo来测试 查询一个时间段的记录数,传入一个时间以后不能正确的查到记录数,最离谱的是用 插件打印出执行的SQL语句放到数据库中是可以跑出数据来的,在代码中跑不出数据。
解决方法:
在通过实体类传输时间之后使用SimpleDateFormat 进行格式化一下时间,在封装到wrapper查询结果正常。
实体类代码
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="User对象", description="用户表")
@ToString
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private String sex;
private String address;
private String phone;
private String userId;
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
业务层代码
@Override
public List<User> gets(User user) {
Date time = user.getCreateTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s1 = sdf.format(time);
Date time1 = user.getUpdateTime();
String s2 = sdf.format(time1);
QueryWrapper <User> wrapper=new QueryWrapper<>();
wrapper.gt("create_time",s1);
wrapper.lt("update_time",s2);
List<User> list = baseMapper.selectList(wrapper);
log.info(String.valueOf(list));
return list;
}
}
控制层代码
//根据时间段查数据
@PostMapping("getList")
public ResultData getList(@RequestBody User user){
List<User> gets = userService.gets(user);
return ResultData.ok().data("list",gets);
}
前端传递的参数
{
"createTime": "2021-04-22 09:12:01",
"updateTime": "2021-04-22 09:55:37"
}