>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 두 날짜 사이의 근무일 수를 계산하는 방법은 무엇입니까?

SQL Server에서 두 날짜 사이의 근무일 수를 계산하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-21 23:21:17471검색

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

SQL Server에서 날짜 간 영업일 계산

두 날짜 사이의 영업일(월요일~금요일) 수를 효율적으로 결정하는 것은 많은 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에서 두 날짜 사이의 근무일 수를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.