MySql - 获取满足条件的下一个日期

时间:2016-07-13 13:11:47

标签: php mysql sql

我有一个名为' helper_leaves'的mysql表。用户已在其中输入了未来2个月的休假日期。

我想在' user_id&#中为的特定helper_leaves获得 2个即将到来的工作日期 39;表格也应该当前日期旁边。

**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个可用日期

对于给出的样本数据,我预计将在接下来的2个工作日期 2016-07-14 2016-07-16 ,因为今天 2016年7月13日

注意:此表中没有的所有日期都被视为工作日期。

请帮助!!!!

2 个答案:

答案 0 :(得分:2)

您可以尝试使用以下查询吗? 在那里,我刚刚生成了接下来的60个日期,并将left_date排除在限制为2的日期之外。

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

答案 1 :(得分:0)

为此您可以使用间隔

对于Ex:

SELECT DATE_ADD(leave_date, INTERVAL 1 DAY) AS workingDay;