我有一个名为“helper_leaves
”的 mysql 表,用户在其中输入了接下来 2 个月的休假日期。
我想获取特定 user_id
的 2 个即将到来的工作日期,这在“helper_leaves
”中不>' 表,并且还应该在当前日期旁边。
**id | user_id | leave_date**
1 | 1 | 2016-07-07
2 | 1 | 2016-07-09
3 | 1 | 2016-07-15
4 | 1 | 2016-08-03
我想编写一个查询以获取 user_id = 1
的下 2 个工作日期,从现在开始。
请注意,此表只有休假日期。但我想获得接下来的 2 个可用性日期。
对于给定的示例数据,我希望将 2016-07-14 和 2016-07-16 作为接下来的 2 个工作日期,因为今天是 2016-07-13
注意:所有不在此表中的日期均视为工作日期。
请帮忙!!!!
最佳答案
你能试试下面的查询吗? 在那里,我刚刚生成了接下来的 60 个日期,并从中排除了限制为 2 的 leave_date。
SELECT CURDATE() + INTERVAL a + b DAY dte
FROM
(SELECT 0 a UNION SELECT 1 a UNION SELECT 2 UNION SELECT 3
UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7
UNION SELECT 8 UNION SELECT 9 ) d,
(SELECT 0 b UNION SELECT 10 UNION SELECT 20
UNION SELECT 30 UNION SELECT 40) m
WHERE CURDATE() + INTERVAL a + b DAY < DATE_ADD(CURDATE(),INTERVAL 60 DAY) and dte not in ( select leave_date from helper_leaves where user_id = 1)
ORDER BY a + b limit 2
关于php - MySql - 获取满足条件的下一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352752/