이 가이드에서는 MySQL 데이터베이스 내에서 두 날짜 간의 연도 차이를 계산하는 정확한 방법을 보여줍니다. 다음 SQL 표현식은 정확한 계산을 제공하여 잠재적인 윤년 복잡성을 처리합니다.
<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
보다 해당 연도에 속하는지 여부가 결정됩니다.
윤년 조정: MySQL은 비교 결과를 1(참) 또는 0(거짓)으로 해석합니다. 초기 연도 차이에서 이 결과를 빼면 정확한 계산이 보장되며, date1
이 date2
과 같은 연도 내에서 연대순으로 앞선 경우를 조정합니다.
예:
샘플 데이터로 설명해 보겠습니다.
<code class="language-sql">CREATE TABLE so7749639 (date1 DATE, date2 DATE); INSERT INTO so7749639 VALUES ('2011-07-20', '2011-07-18'), ('2011-07-20', '2010-07-20'), ('2011-06-15', '2008-04-11'), ('2011-06-11', '2001-10-11'), ('2007-07-20', '2004-07-20');</code>
쿼리:
<code class="language-sql">SELECT date1, date2, YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d')) AS diff_years FROM so7749639;</code>
올바른 연도 차이를 산출합니다.
<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에서 두 날짜 간의 연도 차이를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!