时间范围查询的Mapper怎么写
时间: 2024-01-09 10:03:11 浏览: 162
在 MyBatis 的 Mapper.xml 中,可以使用 between 标签来实现时间范围查询。下面是一个时间范围查询的示例:
```
<select id="selectByTimeRange" parameterType="map" resultType="com.example.User">
SELECT * FROM user
WHERE create_time BETWEEN #{startTime} AND #{endTime}
</select>
```
在上面的示例中,使用了 BETWEEN 关键字来指定查询条件,同时使用了 startTime 和 endTime 两个参数来指定时间范围。需要注意的是,如果 startTime 和 endTime 参数的类型是 Date 或者 LocalDateTime,则需要在参数前添加 @Param("startTime") 和 @Param("endTime") 注解来指定参数名称。如果参数类型是 Map,则可以直接在 Mapper.xml 中使用参数名称,例如 ${startTime} 和 ${endTime}。
如果需要查询的时间范围是开区间,即不包含 startTime 和 endTime 两个时间点,则可以使用 < 和 > 符号来指定查询条件,例如:
```
<select id="selectByTimeRange" parameterType="map" resultType="com.example.User">
SELECT * FROM user
WHERE create_time > #{startTime} AND create_time < #{endTime}
</select>
```
需要注意的是,在使用 < 和 > 符号时,需要转义成实体字符 < 和 >,否则可能会导致语法错误。
阅读全文