これを試してみてください:
-
稼働日数を数えます(ここ )
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)
これにより、2012年の営業日数は261日となります。
-
今、あなたは週末ではないあなたの休日を知る必要があります
SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6
この結果は、休日のテーブルによって異なります。
-
1つのクエリでそれを取得する必要があります:
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)
これでいいはずです。
編集:これは、終了日が開始日よりも高い場合にのみ正しく機能することに注意してください。