您可能要尝试以下操作:
- 计算工作日数(从此处获取)
SELECt 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) +MId('0123444401233334012222340111123400012345001234550', 7 *WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)这为您提供261个工作日(2012年)。
- 现在您需要知道不在周末的假期
SELECT COUNT(*) FROM holidays WHERe DAYOFWEEK(holiday) < 6
其结果取决于您的假期表。
- 我们需要在一个查询中得到它:
SELECt 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) +MId('0123444401233334012222340111123400012345001234550', 7 *WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1) - (SELECT COUNT(*) FROMholidays WHERe DAYOFWEEK(holiday) < 6)应该是这样。
编辑: 请注意,这仅在结束日期高于开始日期时才能正常工作。



