ホームページ > データベース > mysql チュートリアル > T-SQL を使用して 2 つの日付の間の勤務日を計算するにはどうすればよいですか?

T-SQL を使用して 2 つの日付の間の勤務日を計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-21 23:27:11
オリジナル
663 人が閲覧しました

How to Calculate Work Days Between Two Dates Using T-SQL?

T-SQL での勤務日の効率的な計算

2 つの日付間の営業日数を決定することは、SQL Server の一般的な要件です。 これは、プロジェクトのスケジュール設定、従業員の休暇計算、その他のビジネス アプリケーションにとって非常に重要です。 このガイドでは、堅牢な T-SQL アプローチを説明します。

Workday 計算用の T-SQL ソリューション

次の手順は、Transact-SQL (T-SQL) を使用して SQL Server で稼働日を計算する方法の概要を示しています。

  1. 変数宣言: まず、開始日と終了日を保持する変数を宣言します。
  2. 日付の割り当て: 開始日と終了日をこれらの変数に割り当てます。
  3. 就業日数の計算: コアの計算では次の式が使用されます:

(DATEDIFF(dd, @StartDate, @EndDate) 1) - (DATEDIFF(wk, @StartDate, @EndDate) * 2)

この数式は、合計日数を計算し、週末の日 (週に 2 日) を差し引き、開始日または終了日が週末に当たるシナリオを考慮します。

具体例

実際的な例で説明してみましょう:

<code class="language-sql">DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = '2023-03-06';
SET @EndDate = '2023-03-20';

SELECT
    (DATEDIFF(dd, @StartDate, @EndDate) + 1)
    - (DATEDIFF(wk, @StartDate, @EndDate) * 2)
    - (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
    - (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END);</code>
ログイン後にコピー

休業日の取り扱い

より正確な結果を得るには、休日を計算に組み込んでください:

  1. 休日テーブルの作成: 関連する年の休日の日付を保存するテーブルを作成します。
  2. クエリの強化: 休日テーブルと結合することで、勤務日カウントから休日の日付を除外するようにクエリを変更します。 これには、可読性と保守性を向上させるために CTE (共通テーブル式) を使用する可能性のある、より洗練されたクエリが必要です。

以上がT-SQL を使用して 2 つの日付の間の勤務日を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート