sql >> データベース >  >> RDS >> Mysql

MySQLで週末と休日を除く日付の違いをカウントする方法

    これを試してみてください:

    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)

      これにより、2012年の営業日数は261日となります。

    2. 今、あなたは週末ではないあなたの休日を知る必要があります

      SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6

      この結果は、休日のテーブルによって異なります。

    3. 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)

      これでいいはずです。

    編集:これは、終了日が開始日よりも高い場合にのみ正しく機能することに注意してください。



    1. MySQL 1つの行の一意性に基づいてDISTINCTの複数の列を選択しますか?

    2. Windowsでpostgresqlリスニングポートを変更する方法は?

    3. JSON_REMOVE()–MySQLのJSONドキュメントからデータを削除します

    4. データの解析中にエラーが発生しましたorg.json.JSONException:-Androidの文字0で入力が終了しました