SQL模糊查询时间段数据:使用LIKE和CONCAT实现时间范围检索
要模糊查询某个时间段的数据,可以使用LIKE运算符结合通配符进行筛选。以下是修改后的SQL语句:
<select id="getTime" resultMap="ShopkeeperchangeMap">
SELECT s.sid,
staff.staffname,
b1.branchname,
d1.deptname,
r1.rolename,
b2.branchname as newbranchname,
d2.deptname as newdeptname,
r2.rolename as newrolename,
s.transfertime,
s3.staffname as st
FROM shopkeeperchange s
left JOIN staff ON staff.staffid = s.staffid
left JOIN staff s3 ON s3.staffid = s.transferper
LEFT JOIN branch b1 ON b1.branchid = s.branchid
LEFT JOIN department d1 ON d1.deptid = s.deptid
LEFT JOIN role r1 ON r1.roleid = s.roleid
LEFT JOIN branch b2 ON b2.branchid = s.newbranchid
LEFT JOIN department d2 ON d2.deptid = s.newdeptid
LEFT JOIN role r2 ON r2.roleid = s.newroleid
LEFT JOIN stafftransfer st ON s.staffid = st.staffid
<where>
<if test="transfertime != null">
s.transfertime LIKE CONCAT('%', #{start[0]}, '%') AND s.transfertime LIKE CONCAT('%', #{end[1]}, '%')
</if>
st.state = 2 AND b1.branchname != '' AND b2.branchname != ''
</where>
</select>
在上述代码中,使用了LIKE运算符和CONCAT函数来模糊匹配transfertime字段。CONCAT('%', #{start[0]}, '%')会将查询参数前后添加%通配符,表示匹配任意字符。这样,就可以模糊匹配某个时间段的数据。
原文地址: https://www.cveoy.top/t/topic/frOE 著作权归作者所有。请勿转载和采集!