ホームページ > データベース > mysql チュートリアル > SQL Server で 2 つの日付の間の稼働日を計算するにはどうすればよいですか?

SQL Server で 2 つの日付の間の稼働日を計算するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-21 23:31:10
オリジナル
674 人が閲覧しました

How to Calculate Workdays Between Two Dates in SQL Server?

SQL Server の 2 つの日付間の営業日を計算します

指定された 2 つの日付の間の営業日数の計算は、スケジュール設定、時間管理、その他のさまざまなビジネス アプリケーションにとって貴重なツールです。 SQL Server では、T-SQL を使用して月曜日から金曜日までの営業日を直接計算できます。

解決策:

2 つの日付 (@StartDate と @EndDate) の間の営業日数を決定するには、次の式を使用できます:

<code class="language-sql">(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>
ログイン後にコピー

式の内訳:

  • DATEDIFF(dd, @StartDate, @EndDate) 週末を含む 2 つの日付の間の合計日数を計算します。
  • DATEDIFF(wk, @StartDate, @EndDate) 2 つの日付間の完全な週数を計算します。
  • (DATEDIFF(wk, @StartDate, @EndDate) * 2) は、指定された日付範囲内の週末の日数を表します。
  • (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) 開始日が日曜日であるかどうかを確認し、日曜日である場合は 1 日を減算します。
  • (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) 終了日が土曜日かどうかを確認し、土曜日の場合は 1 日減算します。

例:

2008 年 10 月 1 日から 2008 年 10 月 31 日までの営業日数を計算するには、次のクエリを使用できます。

<code class="language-sql">DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2008/10/01'
SET @EndDate = '2008/10/31'

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>
ログイン後にコピー

このクエリは結果 22 を返します。これは、週末を除いた 2008 年 10 月 1 日から 31 日までの営業日数を表します。

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

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