집 >데이터 베이스 >MySQL 튜토리얼 >내장 함수 없이 MySQL에서 두 날짜 사이의 근무일을 계산하는 방법은 무엇입니까?
MySQL에서 두 날짜 사이의 근무일을 계산하는 방법
Excel과 같이 많이 사용되는 스프레드시트 프로그램에서는 두 날짜 사이의 영업일 수를 계산하는 NETWORKDAYS() 함수를 제공합니다. 그러나 MySQL에는 유사한 내장 기능이 없습니다.
풀이: 수학적 표현
MySQL에서 두 날짜 사이의 영업일 수를 계산하려면 다음 표현식을 사용할 수 있습니다.
<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
설명:
DATEDIFF(@E, @S)
: 종료 날짜(@E)와 시작 날짜(@S) 사이의 일수 차이를 계산합니다. DIV 7
: 날짜 사이의 주 수를 구하려면 차이를 7로 나눕니다. 5
: 주 수에 5를 곱하여 근무일 수를 구합니다. MID()
: 시작 날짜와 종료 날짜를 기준으로 문자열에서 관련 숫자 하위 집합을 추출합니다. 표현식에 사용되는 특정 문자열은 다양한 시작 날짜와 종료 날짜 조합 사이의 근무일 수를 기준으로 작성됩니다. 가정 및 제한:
예:
'2023-03-06'(@S)과 '2023-03-10'(@E) 사이의 영업일 수를 계산하려면 다음 쿼리를 사용하면 됩니다.
<code class="language-sql">SELECT 5 * (DATEDIFF('2023-03-10', '2023-03-06') DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY('2023-03-06') + WEEKDAY('2023-03-10') + 1, 1) AS num_working_days;</code>
이 쿼리는 두 날짜 사이의 영업일 수인 5를 반환합니다.
위 내용은 내장 함수 없이 MySQL에서 두 날짜 사이의 근무일을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!