ホームページ > データベース > mysql チュートリアル > SQL Server で 2 つの日付の間の稼働日数を計算する方法

SQL Server で 2 つの日付の間の稼働日数を計算する方法

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

How to Calculate the Number of Workdays Between Two Dates in SQL Server?

SQL Server での日付間の営業日の計算

2 つの日付の間の営業日数 (月曜日から金曜日) を効率的に決定することは、多くの SQL Server アプリケーションにとって重要です。 これは、簡潔な T-SQL 式を使用して実現できます。 次の式は、標準的な月曜から金曜の勤務週を想定しています:

<code class="language-sql">SELECT
    (DATEDIFF(day, @StartDate, @EndDate) + 1)
    - (DATEDIFF(week, @StartDate, @EndDate) * 2)
    - CASE WHEN DATENAME(weekday, @StartDate) = 'Sunday' THEN 1 ELSE 0 END
    - CASE WHEN DATENAME(weekday, @EndDate) = 'Saturday' THEN 1 ELSE 0 END</code>
ログイン後にコピー

ここで、@StartDate@EndDate は開始日と終了日を表します。 計算では、まず合計日数が求められ、次に週末の日が差し引かれます。 また、開始日が日曜日または終了日が土曜日であるような特殊なケースも処理します。

たとえば、@StartDate = '2008/10/01'@EndDate = '2008/10/31' を使用すると、式は次のようになります。

<code>(DATEDIFF(day, '2008/10/01', '2008/10/31') + 1)
- (DATEDIFF(week, '2008/10/01', '2008/10/31') * 2)
- CASE WHEN DATENAME(weekday, '2008/10/01') = 'Sunday' THEN 1 ELSE 0 END
- CASE WHEN DATENAME(weekday, '2008/10/31') = 'Saturday' THEN 1 ELSE 0 END</code>
ログイン後にコピー

この結果は 21 となり、指定された日付の間の 21 営業日を表します。

注意: この計算には祝日は考慮されていません。 休日を含むより包括的なソリューションには、休日テーブルを含むより高度なクエリが必要になります。

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

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