我们有一个包含以下字段的mysql表
employeename, shift from date todate
111aaa, B, 2018-09-01 2018-09-30
222bbb, C, 2017-04-01 2030-12-01
我该如何写一个查询,例如当我给出特定的员工编号和特定的日期(如2018-09-20)时,因为日期范围落在大约第一行日期范围内,所以必须将其班次显示为B。 pl。帮帮我。
答案 0 :(得分:1)
您可以尝试这个;
SELECT * FROM employees WHERE employeename = '111aaa' AND fromdate <= '2018-09-02' AND todate >= '2018-09-02' ORDER BY fromdate DESC LIMIT 1
这将选择一名雇员,其雇员名为“ 111aaa”,并且提供的日期“ 2018-09-02”在该雇员记录的起始日期和截止日期之间。它将对结果进行排序,并使用最新的fromdate进行排序,并且仅返回单个结果。