>  기사  >  데이터 베이스  >  MySQL에서 주말을 제외한 날짜 차이를 계산하는 방법은 무엇입니까?

MySQL에서 주말을 제외한 날짜 차이를 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-01 05:27:27526검색

How to Calculate Date Differences Excluding Weekends in MySQL?

날짜 차이 계산에서 주말 제외: MySQL 솔루션

주말을 제외하고 두 날짜의 차이를 정확하게 계산하기 위해 MySQL 사용자는 종종 다음을 추구합니다. 안내. 표준 DATEDIFF 함수는 기본적인 날짜 차이에 유용하지만 주말을 생략해야 하는 경우에는 부족합니다.

이 문제를 해결하려면 WEEKDAY 함수를 사용하여 사용자 정의 함수를 생성할 수 있습니다. 방법은 다음과 같습니다.

CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT

RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);

이 함수는 여러 MySQL 함수를 사용합니다.

  • ABS: 숫자의 절대값을 반환합니다.
  • DATEDIFF: 숫자의 차이를 결정합니다. 두 날짜.
  • ADDDATE: 날짜에 지정된 일수를 추가합니다.
  • DAYOFWEEK: 특정 날짜의 요일을 가져옵니다. 1은 일요일을 나타내고 7은 토요일을 나타냅니다.

TOTAL_WEEKDAYS 함수는 이러한 함수를 결합하여 두 입력 날짜 간의 절대 차이를 계산하고 범위에서 토요일과 일요일 수를 빼고 범위의 시작과 끝의 요일을 조정합니다. .

사용 예:

주말을 제외하고 두 날짜의 차이를 계산하려면:

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') AS weekdays1,
       TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') AS weekdays2;

결과:

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
|        13 |        13 |

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

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