• mybatisplus时间范围查询


    mybatisplus,时间范围查询的两种方式。下面以查询当天的数据为例。(备注:?表示具体的实体类)

    一、between()

     LambdaQueryWrapper<?> lq = Wrappers.lambdaQuery();
            Date start = DateUtil.strToDateLong(DateUtil.dateToStr(new Date(), Locale.CHINA) + " 00:00:00");
            Date end = DateUtil.strToDateLong(DateUtil.dateToStr(new Date(), Locale.CHINA) + " 23:59:59");
            lq.between(?::getCreateTime, start, end);

    引用的时间类:

    import java.text.DateFormat;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    
    public class DateUtil {
    
        public static ThreadLocal<DateFormat> chinaDateSDF = new ThreadLocal<DateFormat>() {
    
            @Override
            protected DateFormat initialValue() {
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
                return df;
    
            }
        };
    
        /**
         * 获取日期yyyy-MM-dd格式字符串
         *
         * @param date
         * @param locale
         * @return
         */
        public static String dateToStr(Date date, Locale locale) {
            if (locale == null) {
    
            }
            return chinaDateSDF.get().format(date);
        }
    
        /**
         * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
         *
         * @param strDate
         * @return
         */
        public static Date strToDateLong(String strDate) {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            ParsePosition pos = new ParsePosition(0);
            Date strtodate = formatter.parse(strDate, pos);
            return strtodate;
        }
    }

    二、结合ge()和le()

     LambdaQueryWrapper<?> lambdaQueryWrapper = Wrappers.lambdaQuery();
            Calendar start = Calendar.getInstance();
            Calendar end = Calendar.getInstance();
            start.add(Calendar.DATE,-1);
            //
            start.set(Calendar.HOUR_OF_DAY, 0);
            //
            start.set(Calendar.MINUTE, 0);
            //
            start.set(Calendar.SECOND, 0);
    
            String startDate = simpleDateFormat.format(start.getTime());
    
            //
            end.set(Calendar.HOUR_OF_DAY, 0);
            //
            end.set(Calendar.MINUTE, 0);
            //
            end.set(Calendar.SECOND, 0);
    
            String endDate = simpleDateFormat.format(end.getTime());
            lambdaQueryWrapper.ge(?::getCreateTime,startDate).le(?::getCreateTime,endDate);
  • 相关阅读:
    angularJS 数组更新时重新排序之解决方案一:这个坑,绕开吧,不跳了……
    移动web开发之rem响应式设计
    IIS wAS机制
    触摸方法
    滑动加载函数
    js有关数组的函数
    用absolute进行页面的自适应布局
    absolute
    清除float的方法
    图片和文字的位置垂直居中和左右摆放
  • 原文地址:https://www.cnblogs.com/luoa/p/15138468.html
Copyright © 2020-2023  润新知