2014-01-12 3 views
0

예, 이전에 매우 유사하지만 이전에 요청한 적이 있습니다.생년월일의 MySQL 나이 - TIMESTAMPDIFF()

이제 윤년과 기타 등을 고려하여 출생부터 정확한 나이를 결정하는 많은 기능이 있습니다. 그러나 MySQL documentation은 매우 간단한 솔루션을 제공 : 이것은 내가 던질 모든 날짜에 대해 작동하는 것 같다

SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) AS age

. 그러나이 설명서에는이 정확성 또는 차이점 계산 방법에 대한 내용이 없습니다. 그것은 단순한 diff/365.25보다 더 똑똑해 보입니다. 여기

은 몇 가지 예입니다 :.

('1992-08-12', '3009-08-12') => 1017 - Correct 
('1992-08-12', '3009-08-11') => 1016 - Correct 
('1992-02-29', '3009-03-01') => 1017 - Correct 
('1992-02-29', '3009-02-28') => 1016 - Correct 

나에게 꽤 정확한 모양과 그에서 스택 사소한 계산 착오에 대한 긴 시간의 지옥이다

이 가에 안전하게 당신에게 나의 질문

이걸 써? 이것이 부정확 한 결과를 줄 수있는 날짜를 제공 할 수 있습니까? (하루보다 작은 단위에 관심이 없음)

+3

문서가이 차이를 계산하고 모든 테스트를 확인 있다고하면 , 당신은 왜 그것을 의심합니까? 주의 사항이 있다면 그렇게 말할 것입니다. – Barmar

+0

아마도 알고리즘과 비슷한 것을 사용할 것입니다. http://alcor.concordia.ca/~gpkatch/gdate-algorithm.html – Barmar

+0

@Barmar 더 복잡한 알고리즘을 선호하는 웹의 다른 게시물에서는 널리 무시되기 때문입니다. 내 검사가 결정적인 것은 아닙니다 (나는 무엇을 검사해야할지 모르겠습니다). 문서에 있기 때문에 그것이 완전히 정확하다는 것을 의미하는 것은 아니며, 버그가 존재한다. "충분히 좋다"라고 생각할 수는 있지만 충분히 만족 스럽다. 나는 사실을 좋아하지 않는다. –

답변