① :MybatisPlus 2.X
//選擇日期查詢
String startTime = channel.getStartTime ();
String endTime = channel.getEndTime();
// 查詢條件賦值
Wrapper<TCouponPackageChannel> ew = new EntityWrapper<>();
//選擇日期查詢
if(StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)){
ew.andNew();
ew.leftNest();
ew.le("start_time",startTime);
ew.and();
ew.ge("end_time",startTime);
ew.rightNest();
ew.or();
ew.leftNest();
ew.le("start_time",endTime);
ew.and();
ew.ge("end_time",endTime);
ew.rightNest();
ew.or();
ew.leftNest();
ew.ge("start_time",startTime);
ew.and();
ew.le("end_time",endTime);
ew.rightNest();
}
②:MybatisPlus 3.X
//選擇日期查詢
Map<String, Object> params = req.getKeyMap();
String startTime =(String)params.get("startTime");
String endTime =(String)params.get("endTime");
// 查詢條件賦值
QueryWrapper<TCouponPackageChannel> ew = new QueryWrapper<>();
if(StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)){
//選擇日期查詢
ew.apply("(('"+startTime+"' >= FROM_UNIXTIME(start_time/1000,'%Y-%m-%d') and FROM_UNIXTIME(end_time/1000,'%Y-%m-%d') >= '"+startTime+"') or ('"+endTime+"' >= FROM_UNIXTIME(start_time/1000,'%Y-%m-%d') and FROM_UNIXTIME(end_time/1000,'%Y-%m-%d') >= '"+endTime+"') or (FROM_UNIXTIME(start_time/1000,'%Y-%m-%d') >= '"+startTime+"' and '"+endTime+"' >= FROM_UNIXTIME(end_time/1000,'%Y-%m-%d')))" );
}
這兩種查詢條件是我經過測試拼好的,可以根據傳入的兩個時間(如果是時間戳就像第二種轉換一下格式)查詢。。。