求教一个问题,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);评论 打赏 举报解决 1无用