qq_41553618 2021-06-01 14:52 采纳率: 25%
浏览 1102

mybatisplus日期条件查询

求教一个问题,mybatisplus在拼接sql where语句时,一个时间范围判断,传入的时间参数是date类型和string类型有什么区别,数据库用的mysql,string字符串也是标准的yyyy-MM-dd格式

  • 写回答

1条回答 默认 最新

  • 小P聊技术 2021-06-01 14:56
    关注

    个人感觉区别不大,数据库与mybatis都会去自行识别的 

     String dzDate = "20200804";
    //         dzDate = "\uFEFF20200804";
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");//注意月份是MM
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
            Date dzDateObj = sdf1.parse(dzDate);
            String startDayTime = sdf2.format(dzDateObj)+" 00:00:00"; //2020-08-04 00:00:00
            //加一天
            Calendar cal = Calendar.getInstance();
            cal.setTime(dzDateObj);
            cal.add(Calendar.DAY_OF_YEAR,1);
            Date addDate = cal.getTime();
            String endDayTime = sdf2.format(addDate)+" 00:00:00";//2020-08-05 00:00:00
            //查询指定字段
            paySerialQueryWrapper.select("PAY_SERIAL_ID","PAY_CHANNEL_SERIAL","AMOUNT");
            //查询条件为时间范围
            paySerialQueryWrapper.apply("UNIX_TIMESTAMP(PAY_DATE) >= UNIX_TIMESTAMP(‘"+startDayTime+"‘)");
            paySerialQueryWrapper.apply("UNIX_TIMESTAMP(PAY_DATE) < UNIX_TIMESTAMP(‘"+endDayTime+"‘)");
            //查询当天所有支付记录
            List<PaySerial> pcPaySerials = paySerialService.list(paySerialQueryWrapper);
    评论

报告相同问题?