我的任务是建立一个考勤系统,我做得很好,但我被困在一个地方。在计算休假时,如果一个人周五请假,周一又请假,那么周六和周日之间也应该算作休假。
我已经能够通过以下查询从我的表中仅提取星期五和星期一:
SELECT * FROM `main` WHERE (DAYOFWEEK( DATE ) =2 OR DAYOFWEEK( DATE ) =6 )
AND emp_no =4 AND STATUS ='leave' ORDER BY DATE ASC
但我不知道如何仅选择周五和下周一,所以我知道此人周五和周一都在休假。
如有任何帮助,我们将不胜感激。
最佳答案
这将为您提供跨越周五和下周一的所有“叶子”:
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'
关于mysql - 只在mysql中选择周五和即将到来的周一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893875/