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 サイトの他の関連記事を参照してください。