表:(员工)

我需要获取两天之间的数据我使用以下查询来获取两个日期之间的数据
SELECT * FROM employee WHERE Price ((DATE('2020-01-01') BETWEEN DATE(start_date) AND DATE(end_date)) OR (DATE('2020-01-03') BETWEEN DATE(start_date) AND DATE(end_date)) OR (DATE(start_date) >= DATE('2020-07-03')) AND DATE(end_date) <= DATE('2020-07-03'));我得到了以下结果:

但我希望得到以下结果

那么,如何在mysql中获得我期望的结果数据呢
发布于 2020-07-03 22:46:42
您的查询似乎与您的样本数据无关。
根据您的数据,您似乎需要生成日期。您可以使用递归CTE,然后使用join来完成此操作。
with recursive dates as (
      select date('2020-01-01') as dte
      union all
      select dte + interval 1 day
      from dates
      where dte < date('2020-01-04')
     )
select d.dte, e.end_date, e.employeename
from employee e join
     dates d
     on d.dte between e.start_date and e.end_dateHere是一个db<>fiddle。
https://stackoverflow.com/questions/62717712
复制相似问题