SQL의 getDate() 함수를 사용하여 생년월일을 기준으로 나이를 계산합니다
질문:
많은 데이터베이스가 생년월일을 포함한 개인 정보를 유지하고 있습니다. 기록관리를 위한 정확한 연령추적을 위해서는 저장된 생년월일을 개인의 나이(년)로 환산해야 합니다.
해결책:
문자열 날짜를 날짜 데이터 유형으로 변환:
CONVERT(datetime, DOB)
나이를 연 단위로 계산:
DATEDIFF(hour, CONVERT(datetime, DOB), getDate())
DATEDIFF(hour, CONVERT(datetime, DOB), getDate()) / 8766.0
출력:
SELECT ID, Name, DATEDIFF(hour, CONVERT(datetime, DOB), getDate()) / 8766.0 AS AGE, DOB FROM [YourTable];
정확성 고려 사항:
윤년과 정확한 날짜 계산은 정확성에 영향을 미칩니다. 정확성을 높이려면 다음 사항을 고려하세요.
연령을 정수로 계산하는 가장 좋은 방법:
(CONVERT(int, CONVERT(char(8), @Now, 112)) - CONVERT(char(8), @Dob, 112)) / 10000
나이를 소수로 계산하는 가장 좋은 방법:
1.0 * DATEADD(yy, @Dob, @Now) + CASE WHEN @Now >= DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)) THEN -- 当年生日已过 (1.0 * DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)), @Now) / DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), 1, 1), DATEFROMPARTS(YEAR(@Now) + 1, 1, 1)) ) ELSE -- 当年生日未过 -1 * ( -1.0 * DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)), @Now) / DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), 1, 1), DATEFROMPARTS(YEAR(@Now) + 1, 1, 1)) ) END
위 내용은 SQL의 getDate()를 사용하여 생년월일로부터 나이를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!