>  기사  >  데이터 베이스  >  MySQL의 DOB에서 고객의 나이를 어떻게 정확하게 계산할 수 있습니까?

MySQL의 DOB에서 고객의 나이를 어떻게 정확하게 계산할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 14:32:03987검색

How Can I Accurately Calculate a Customer's Age from Their DOB in MySQL?

MySQL의 DOB에서 나이 확인

MySQL에 저장된 생년월일(DOB)을 기준으로 고객의 나이를 확인하려면 데이터베이스를 사용하면 나이를 정확하게 계산해야 하는 문제에 직면하게 됩니다. 처음에는 DATEDIFF(연도, customer.dob, "2010-01-01")를 사용한 시도가 떠오를 수도 있지만 예상한 결과가 나오지 않을 수도 있습니다.

정확한 연령 계산

이러한 난관을 극복하려면 현재 연도와 고객의 생년월일 간의 연도 차이뿐만 아니라 해당 연도의 잠재적인 생년월일이 겹치지 않는 효과도 고려하는 보다 세련된 접근 방식이 필요합니다.

MySQL 쿼리

다음 MySQL 쿼리는 연령 계산의 복잡한 세부 정보를 캡처합니다.

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age

작동 방식:

  1. 연도 차이: DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') 표현식은 현재 연도와 연도 간의 차이를 계산합니다. 고객의 출생 연도.
  2. 생년월일 조정: 후속 용어(DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00- %m-%d'))는 달력 연도 내에서 현재 날짜와 고객의 생년월일의 상대적 위치를 평가합니다. 생년월일이 현재 날짜와 같거나 그 이후이면 해당 연도가 이미 고객의 나이에 추가되기 시작했음을 의미하므로 값 1을 뺍니다.

계산 예시

  • 1990년 1월 1일에 태어났고 현재 날짜가 2023년 3월 15일인 고객의 경우 쿼리의 나이는 33세입니다.
  • 반대로, 고객의 생일이 1990년 7월 1일이라면 2023년에는 7월 1일이 아직 발생하지 않았으므로 쿼리는 32세를 반환합니다.

결론

이것은 포괄적인 MySQL 쿼리는 다양한 생년월일 및 연도 진행의 영향을 고려하여 DOB의 정확한 연령 계산과 관련된 복잡한 고려 사항을 충족합니다.

위 내용은 MySQL의 DOB에서 고객의 나이를 어떻게 정확하게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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