求教一个问题,mybatisplus在拼接sql where语句时,一个时间范围判断,传入的时间参数是date类型和string类型有什么区别,数据库用的mysql,string字符串也是标准的yyyy-MM-dd格式
个人感觉区别不大,数据库与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);