Mybatis-plus使用时间查询注意点

  • Post author:
  • Post category:其他


1、引入问题:

近日有群成员提出一个问题:数据库是date类型,MyBatis传入timestamp类型参数,但是查询结果为 0 。如下所示:

queryWrapper.ge("date_format(create_time,'%Y-%m-%d')", yxhServeApplyDto.getBeginTime());
queryWrapper.le("date_format(create_time,'%Y-%m-%d')", yxhServeApplyDto.getEndTime());

Preparing: select * from 表名 where begin_time = ?

Parameters: 2021-11-19 00:00:00.0(Timestamp)

Total: 0

打印的sql语句如下:自动加上了


00:00:00.0

select * from 表名 
where  1=1 
and ( date_format( create_time, '%Y-%m-%d' ) >= '2021-11-19 00:00:00.0' 
AND date_format( create_time, '%Y-%m-%d' ) <= '2021-11-20 00:00:00.0' )

2,解决方案

将传入的时间格式化为自己理想的格式并

转为字符串

即可

queryWrapper.ge("date_format(create_time,'%Y-%m-%d')",时间格式化为字符串);
queryWrapper.le("date_format(create_time,'%Y-%m-%d')", 时间格式化为字符串);

转后打印的结果:

select * from 表名 
where  1=1 
and ( date_format( create_time, '%Y-%m-%d' ) >= '2021-11-19' 
AND date_format( create_time, '%Y-%m-%d' ) <= '2021-11-20' )

就能查到结果了



版权声明:本文为goodboxs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。