問題描述:
准備寫一個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"
}

