Mybatis-Plus 时间范围查询 亲测有效
使用QueryWrapper方法,我Mysql数据库时间字段用的是DateTime,到秒。如果你是用的其他时间格式比较需要将下方date_format (create_time,'%Y-%m-%d %H:%i:%s')
中的'%Y-%m-%d %H:%i:%s'
更换为对应的,如年月日为:'%Y-%m-%d'
。
public IPage<NoticeInfoDetailDTO> listNoticeInfo(String noticeTitle, String beginTime, String endTime) {
QueryWrapper<String> queryWrapper = new QueryWrapper<>();
//创建时间,优先级倒序排序
queryWrapper.eq("is_valid", ParkingConstants.VALID).orderByDesc("create_time","notice_priority");
if (StringUtils.isNotBlank(noticeTitle)) {
queryWrapper.like("notice_title", noticeTitle);
}
queryWrapper.apply(StringUtils.isNotBlank(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format('" + beginTime + "','%Y-%m-%d %H:%i:%s')")
.apply(StringUtils.isNotBlank(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format('" + endTime + "','%Y-%m-%d %H:%i:%s')");
IPage<NoticeInfoDetailDTO> page = new Page<>();
return noticeInfoMapper.listNoticeInfo(page, queryWrapper);
}
亲测有效