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

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

Patricia Arquette
풀어 주다: 2025-01-21 23:31:10
원래의
674명이 탐색했습니다.

How to Calculate Workdays Between Two Dates in SQL Server?

SQL Server에서 두 날짜 사이의 근무일 계산

주어진 두 날짜 사이의 근무일 수를 계산하는 것은 일정 관리, 시간 관리 및 기타 다양한 비즈니스 애플리케이션에 유용한 도구입니다. SQL Server에서는 T-SQL을 사용하여 월요일부터 금요일까지의 근무일을 직접 계산할 수 있습니다.

해결책:

두 날짜(@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) 주말을 포함하여 두 날짜 사이의 총 일수를 계산합니다.
  • DATEDIFF(wk, @StartDate, @EndDate) 두 날짜 사이의 전체 주 수를 계산합니다.
  • (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>
로그인 후 복사

이 쿼리는 주말을 제외한 2008년 10월 1일부터 31일까지의 근무일 수를 나타내는 결과 22를 반환합니다.

위 내용은 SQL Server에서 두 날짜 사이의 근무일을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿