MySQL에서 나이를 정수로 계산
MySQL 데이터베이스에 저장된 생년월일을 기준으로 개인의 나이를 판단할 때, DATEDIFF() 함수에서 제공하는 날짜 차이는 정확한 정수 표현을 제공하지 못합니다. 이 문제를 극복하려면 다단계 접근 방식이 필요합니다.
1단계: 연도 계산
YEAR(CURDATE()) - YEAR(생년월일) 표현식 현재 날짜와 생년월일 사이의 연도 차이를 산출합니다. 그러나 이 접근 방식은 불완전한 연도를 설명하지 않습니다. 예를 들어, 현재 날짜가 5월이고 생년월일이 6월인 경우 개인의 나이는 여전히 31세입니다.
2단계: 불완전 연도에 대한 수정
주소 불완전한 연도 문제인 경우 다음 하위 쿼리를 사용할 수 있습니다.
(SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
이 하위 쿼리는 윤년을 고려하여 개인의 생년월일 이후 경과된 연도와 일수를 계산합니다.
3단계: 결과 결합
연령을 정수로 계산하는 최종 표현식은 다음과 같습니다.
(YEAR(CURDATE()) - YEAR(birth_date)) - (SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
이 표현식은 전체 연수에서 불완전한 연수를 뺍니다. 개인의 나이를 나타내는 정수로.
대체 솔루션
MySQL에서 나이를 정수로 계산하는 또 다른 옵션은 TIMESTAMPDIFF() 함수를 사용하는 것입니다.
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
이 기능은 두 타임스탬프 간의 연도 차이를 직접 계산하므로 복잡한 계산이 필요하지 않습니다. 또한 YEAR를 MONTH 또는 DAY로 대체하여 월 또는 일의 차이를 계산하는 데 사용할 수도 있습니다.
위 내용은 MySQL에서 나이를 정수로 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!