一、该问题的重现步骤是什么?
按年月日时分秒这样可以查询时间区间,但是按年月日就样的日期格式查询后台就报错
2. 代码描述如下
前端vue如下
{
label: "消费日期",
prop: "createTime",
search: true,
type: "daterange",
format:"yyyy-MM-dd",
valueFormat:"yyyy-MM-dd",
searchSpan: 8,
searchRange: true,
searchOrder: 0,
addDisplay:false,
rules: [
{
required: true,
message: "请输入消费日期",
trigger: "blur",
},
],
},
后端如下
/**
* 消费日期
*/
@DateTimeFormat(pattern=DateUtil.PATTERN_DATE)
@JsonFormat(pattern=DateUtil.PATTERN_DATE)
@ApiModelProperty(value = "消费日期")
private LocalDateTime createTime;
这里的PATTERN_DATE是yyyy-MM-dd
3. 运行报错如下
Caused by: java.text.ParseException: Unparseable date: "2021-02-01"
at java.text.DateFormat.parse(DateFormat.java:366)
at org.springblade.core.tool.utils.ConcurrentDateFormat.parse(ConcurrentDateFormat.java:77)
at org.springblade.core.tool.utils.DateUtil.parse(DateUtil.java:403)
at org.springblade.core.mp.support.SqlKeyword.lambda$buildCondition$0(SqlKeyword.java:95)
at java.util.LinkedHashMap.forEach(LinkedHashMap.java:676)
at org.springblade.core.mp.support.SqlKeyword.buildCondition(SqlKeyword.java:64)
at org.springblade.core.mp.support.Condition.getQueryWrapper(Condition.java:95)
at org.springblade.core.mp.support.Condition.getQueryWrapper(Condition.java:79)
at org.business.lcyj.finance.controller.XjOrderInfoController.list(XjOrderInfoController.java:86)
at org.business.lcyj.finance.controller.XjOrderInfoController$$FastClassBySpringCGLIB$$639f252a.invoke(
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
... 86 common frames omitted
二、你期待的结果是什么?实际看到的又是什么?
只按年月日这样的日期格式查询 不带时分秒,实际看到的是后台报错
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex cloud版 版本号是2.7.0.RELEASE 全部运行在widows上面
哥们,我看你发了好几贴了。
mysql时间查询要用大于、小于、等于、大于等于、小于等于去查,不能用like查
比如你要查今天的创建数据2021-02-03
那就要
and create_tieme >= '2021-02-03'
and create_time < '2021-02-04'
其次你要注意,mybatis 的mapper是xml,大于小于符号要转义
再次如果你使用mybatis-plus的wrapper设置条件
就要
LocalDate tody = LocalDate.now();
......
lambdaWrapper.ge(XXX::getCreateTime, today)
.lt(XXX::getCreateTime, today.plusDay(1L));
扫一扫访问 Blade技术社区 移动端