开发者

mybatis plus时间判断问题

开发者 https://www.devze.com 2024-09-20 10:43 出处:网络 作者: acgchan
目录myBATis plus时间判断mybatis plus如何进行时间日期的比较总结mybatis plus时间判断
目录
  • myBATis plus时间判断
  • mybatis plus如何进行时间日期的比较
  • 总结

mybatis plus时间判断

  <where>yCUiA
            <if test="startTime != null">
                and eventtimestamp &gt;= #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and eventtimestamp 编程客栈&lt; #{ehttp://www.devze.comndTime} ,INTERVAL 1 DAY)
            </if>
        </where>

方法一:使用XML 原生转义的方式进行转义#

  • 字符名称    sql符号    转义字符
  • 大于号    >    &gt;
  • 小于号    <    &lt;
  • 不等于    <>    &lt;&gt;
  • 大于等于号    >=    &gt;=
  • 小于等于号    <=    &lt;=
  • 与    & &pythonnbsp;  &amp;
  • 单引号    '    &apos;
  • 双引号    "    &quot;
<if test="startTime != null and endTime != null">
                and change_time between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}
            </if>

mybatis plus如何进行时间日期的比较

获取数据库中跟当前日期相等的记录时,还是调用eq方法,所以实体类包括数据库中的类型是Date,而不是DateTime,否则只能获取相同时刻的数据。

pulbic void main(){
	LocalDate now = LocalDate.now();
	LambdaQueryWrapper<Ebbinghaus> queryWrapper = new LambdaQueryWrapper();
	queryWrapper.eq(Ebbinghasu.getCreateTime,now);
    ebbinghuas.list(queryWrapper);
}

Mybatis-Plus的时间比较是基于数据库的函数进行的,而不是字符串的比较。在Mybatis-Plus中,可以使用Wrapper对象的ge、gt、le、lt方法来进行时间的比较。

这些方法会根据数据库的不同,生成相应python的SQL语句来实现时间的比较操作。所以,不需要将时间转换为字符串进行比较。

如果要进行天数的比较最好还是通过LocalDate做为数据的类型,而不是LocalDateTime,否则比较的也只是大于当前时刻,大于等于当前时刻。

如果对数据的时刻值有操作需求,可以进行以下设置:

@jsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;

数据库中对应的字段类型设置为date,而不是datetime,这样即可以比较天数,又可以在时刻上有更为丰富的操作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号