Možná budete chtít zkusit toto:
-
Spočítejte počet pracovních dnů (převzato z zde )
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)
To vám dává 261 pracovních dnů pro rok 2012.
-
Nyní musíte znát své svátky, které nejsou o víkendu
SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6
Výsledek závisí na vašem svátečním stole.
-
Potřebujeme to získat v jednom dotazu:
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(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6)
Tohle by mělo být ono.
Upravit:Uvědomte si prosím, že to funguje správně, pouze pokud je datum ukončení vyšší než datum zahájení.