MyBatis 时间类型比较:查询入职两年到三年员工最高/最低薪资
在 MyBatis 中,可以使用动态 SQL 语句来实现根据时间类型进行比较的查询。以下是一个示例:
<select id="getEmployeeByYears" parameterType="java.util.Map" resultType="com.example.Employee">
SELECT * FROM employee
WHERE join_date >= #{startDate} AND join_date <= #{endDate}
ORDER BY salary DESC
LIMIT 1
</select>
在这个示例中,我们使用了 Map 作为参数传递起始日期和结束日期。在 Mapper 接口中定义一个方法来调用这个查询语句:
public interface EmployeeMapper {
Employee getEmployeeByYears(Map<String, Date> params);
}
然后,在调用这个方法时,传入起始日期和结束日期作为参数:
Map<String, Date> params = new HashMap<>();
params.put("startDate", startDate);
params.put("endDate", endDate);
Employee employee = employeeMapper.getEmployeeByYears(params);
在上面的示例中,我们使用了ORDER BY salary DESC来按照薪资降序排序,然后使用LIMIT 1来限制只返回一条记录,即最高薪资的员工信息。如果你想查询最低薪资的员工信息,只需将ORDER BY salary DESC改为ORDER BY salary ASC即可。
注意:在这个示例中,假设join_date字段是一个日期类型的字段,你需要根据实际情况修改表名、字段名和实体类名。
原文地址: https://www.cveoy.top/t/topic/pZ6e 著作权归作者所有。请勿转载和采集!