只选择星期五和星期一在mysql中

时间:2012-10-15 10:39:38

标签: mysql select dayofweek weekday weekend

我手上有一个建立考勤系统的任务,我做得很好,但我被困在一个地方。在计算叶子时,如果一个人在星期五休假,然后在星期一再次休假,那么星期六和星期日之间也应该算作叶子。

我已经能够通过以下查询从我的表中仅提取星期五和星期一:

SELECT * FROM  `main` WHERE (DAYOFWEEK( DATE ) =2 OR DAYOFWEEK( DATE ) =6 ) 
AND emp_no =4 AND STATUS ='leave' ORDER BY DATE ASC 

但我不知道如何选择星期五和下周一 所以我知道这个人在星期五和星期一休假。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

这将为您提供跨越星期五和随后星期一的所有“假期”:

SELECT *
FROM   main fri JOIN main mon
    ON fri.DAYOFWEEK(DATE)=6
   AND mon.DATE = fri.DATE + INTERVAL 3 DAY
   AND fri.emp_no = mon.emp_no
WHERE  fri.STATUS='leave' AND mon.STATUS='leave'