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 중국어 웹사이트의 기타 관련 기사를 참조하세요!