Mysql过滤两列之间的两个日期
发布时间:2022-07-28 23:33:55 254
相关标签: # 数据库
我试图得到的结果将是过滤两个日期之间的两个日期。为了提供更多背景信息,我有一个包含员工假期的表,我想得到员工在选定日期范围内度假的所有日期。
例子:
员工1的假期日期范围为2022-07-20至2022-07-30
员工2的假期日期范围为2022-07-22至2022-07-25
表看起来像:
ID employee_id StartDate EndDate
1 1 2022-07-20 2022-07-30
2 2 2022-07-22 2022-07-25
我想做的是过滤2022-07-21-2022-07-28日期范围内有假期的所有员工
当我尝试这样的事情时:
SELECT * FROM emp_holidays WHERE StartDate >= '2022-07-21' and EndDate <= '2022-07-28'
然后我从数据库中只得到了第二条记录,因为只有一个员工匹配这个过滤器,但我知道今天rande第一个员工也在度假。
最好的结果是什么?
eployee_id date
1 2022-07-21
1 2022-07-22
1 2022-07-23
1 2022-07-24
1 2022-07-25
1 2022-07-26
1 2022-07-27
1 2022-07-28
2 2022-07-22
2 2022-07-23
2 2022-07-24
2 2022-07-25
另一个令人惊讶的结果是
eployee_id date_from date_to
1 2022-07-21 2022-07-25
2 2022-07-22 2022-07-25
任何帮助都将是惊人的:)
我正在考虑一个新的助手表,其中包含未来50年的日期,然后从helper选项卡获取数据,然后检查是否StartDate
是在select from helper表结果中,但我不确定这是否是最佳解决方案。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报