mybatis时间查询条件

<if test="startTime !=null and startTime !=''">
and a.SIGN_TIME &gt;= to_date('${startTime}' , 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endTime !=null and endTime !=''">
and a.SIGN_TIME &lt;= to_date('${endTime}' , 'yyyy-mm-dd hh24:mi:ss')
</if>

### MyBatis 中的时间字段查询MyBatis 中处理时间字段的查询可以通过多种方式进行优化和简化。为了确保 SQL 查询能够高效地操作数据库中的时间数据,可以采用如下方法: #### 使用 `DATE_FORMAT` 函数进行格式化 当需要按照特定格式展示日期时,在 MySQL 数据库中可以直接利用 `DATE_FORMAT()` 函数来完成这一需求[^1]。 ```sql SELECT DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS formatted_create_time FROM table_name WHERE ... ``` #### 动态设置时间范围条件 对于涉及时间段筛选的情况,比如查询某段时间内的记录,MyBatis 支持通过 `<if>` 标签实现动态 SQL 的拼接功能。 ```xml <select id="selectByTimeRange" parameterType="map" resultType="com.example.Entity"> SELECT * FROM entity_table <where> <if test="startTime != null and endTime != null"> AND create_time BETWEEN #{startTime} AND #{endTime} </if> </where> </select> ``` #### 自动填充创建时间和更新时间 针对每次新增或修改记录时自动维护时间戳的需求,可以在实体类上定义相应的属性,并配合拦截器或者插件机制达到目的[^2]。 ```java @MappedSuperclass public abstract class BaseEntity { @Temporal(TemporalType.TIMESTAMP) private Date createTime; public void setCreateTime(Date createTime) { this.createTime = createTime; } // getter 方法省略... } // 插入操作前自动设置createTime @Override protected void insertFill(MetaObject metaObject) { if (metaObject.hasGetter("createTime")) { Object createTimeValue = LocalDateTime.now(); metaObject.setValue("createTime", createTimeValue); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值