Du kanske vill prova detta:
-
Räkna antalet arbetsdagar (tog det från här )
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)
Detta ger dig 261 arbetsdagar för 2012.
-
Nu behöver du veta dina helgdagar som inte är på en helg
SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6
Resultatet av detta beror på ditt semesterbord.
-
Vi måste få det i en fråga:
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)
Detta borde vara det.
Redigera:Tänk på att detta bara fungerar korrekt om ditt slutdatum är högre än ditt startdatum.