我有一张这样的表
employee | wrok_from |until
-------------------------------------------
Emp1 | 2017-01-01 |2017-01-15
Emp2 | 2017-01-10 |2017-01-25
Emp3 | 2017-01-20 |2017-02-10
Emp4 | 2017-01-30 |2017-02-20
我想向每位员工展示两个日期之间的工作。 EXP: 当我选择2017-01-23和2017-02-20之间的日期时,它会告诉我:
Emp2 | 2017-01-10 |2017-01-25
Emp3 | 2017-01-20 |2017-02-10
Emp4 | 2017-01-30 |2017-02-20
当我在2017-01-10和2017-02-01之间选择日期时,它会告诉我:
Emp1 | 2017-01-01 |2017-01-15
Emp2 | 2017-01-10 |2017-01-25
Emp3 | 2017-01-20 |2017-02-10
Emp4 | 2017-01-30 |2017-02-20
答案 0 :(得分:0)
我认为这应该有效。
我使用:start
和:end
作为输入值的占位符。
当工作日期至少部分属于您的输入范围时,查询会选择所有具有工作日期的员工。
可视化(I
:输入范围,y
:已选中,n
:未选中):
--------IIIIIIIIIIIIIIIIIIII----------
--nnn-yyyy---yyyy---------yyyyy----nn-
查询:
SELECT *
FROM workdates
WHERE
work_from < :end AND
until > :start