MybatisPlus 3.X or 2.X 日期區間查詢

 

① :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')))" );
    }

這兩種查詢條件是我經過測試拼好的,可以根據傳入的兩個時間(如果是時間戳就像第二種轉換一下格式)查詢。。。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章