도전:
MySQL 데이터베이스 내에서 두 날짜 사이의 연도 차이를 정확하게 계산하여 윤년을 올바르게 처리하고 일관된 결과를 보장합니다.
MySQL 솔루션:
<code class="language-sql">YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))</code>
세부 분석:
YEAR(date1) - YEAR(date2)
: 두 입력 날짜 사이의 연도 차이를 계산합니다.(DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))
: date1
의 월과 일이 date2
의 월과 일보다 앞에 있는지 확인하는 부분입니다. true이면 연도 차이가 이미 계산되었더라도 date1
가 date2
보다 해당 연도에 먼저 해당한다는 의미입니다.비교의 부울 결과(TRUE/FALSE)는 암시적으로 정수(TRUE의 경우 1, FALSE의 경우 0)로 변환됩니다. 그런 다음 이 정수를 초기 연도 차이에서 빼서 정확한 연도 계산을 보장합니다.
예시:
다음 표는 방법의 정확성을 보여줍니다.
<code>+------------+------------+------------+ | date1 | date2 | diff_years | +------------+------------+------------+ | 2011-07-20 | 2011-07-18 | 0 | | 2011-07-20 | 2010-07-20 | 1 | | 2011-06-15 | 2008-04-11 | 3 | | 2011-06-11 | 2001-10-11 | 9 | | 2007-07-20 | 2004-07-20 | 3 | +------------+------------+------------+</code>
요약:
이 간결한 MySQL 표현식은 윤년을 세심하게 계산하고 다양한 날짜 시나리오에서 일관성을 유지하면서 두 날짜 사이의 연도 차이를 계산하는 신뢰할 수 있고 정확한 방법을 제공합니다.
위 내용은 MySQL에서 두 날짜 사이의 연도 차이를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!