服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Mybatis和Mybatis-Plus时间范围查询方式

Mybatis和Mybatis-Plus时间范围查询方式

2021-11-09 11:26loop.fu Java教程

这篇文章主要介绍了Mybatis和Mybatis-Plus时间范围查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、mysql

1.传入时间范围参数类型是字符串

?
1
2
3
4
5
6
<if test="startTime!=null and startTime.trim() neq ''">
   and date_format(create_time,'%Y-%m-%d %H:%i:%s') &gt;= str_to_date(#{startTime},'%Y-%m-%d %H:%i:%s')
 </if>
 <if test="endTime!=null and endTime.trim() neq ''">
   and date_format(create_time,'%Y-%m-%d %H:%i:%s') &lt;= str_to_date(#{endTime},'%Y-%m-%d %H:%i:%s')
 </if>

2.传入时间范围参数类型是Date

?
1
2
3
4
5
6
<if test="startTime!=null and startTime.trim() neq ''">
   and date_format(create_time,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{startTime},'%Y-%m-%d %H:%i:%s')
 </if>
 <if test="endTime!=null and endTime.trim() neq ''">
   and date_format(create_time,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
 </if>

3.Mybatis-Plus时间范围查询

?
1
2
3
4
5
6
7
8
Page<Record> page = new Page<>(page, limit);
 IPage<Record> result = iRecordService.page(page,
        new LambdaQueryWrapper<Record>()
            .apply(StrUtil.isNotBlank(start_date),
                    "date_format (optime,'%Y-%m-%d') >= date_format('" + start_date + "','%Y-%m-%d')")
            .apply(StrUtil.isNotBlank(end_date),
                    "date_format (optime,'%Y-%m-%d') <= date_format('" + end_date + "','%Y-%m-%d')")
            .orderByDesc(HmsFaceDetectLog::getOptime));

Mybatis Plus 时间查询无效

错误写法

?
1
2
3
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
QueryWrapper query = new QueryWrapper();
query.ge("create_time", LocalDateTime.parse("2019-05-13 23:00:00", df));

正确写法

?
1
query.apply("UNIX_TIMESTAMP(create_time) >= UNIX_TIMESTAMP('" + "2019-05-12 03:00:00" + "')");

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_21683643/article/details/109530346

延伸 · 阅读

精彩推荐