집 >데이터 베이스 >MySQL 튜토리얼 >생년월일을 사용하여 SQL Server에서 나이를 정확하게 계산하는 방법은 무엇입니까?
생년월일을 사용하여 SQL Server에서 정확한 나이 계산
SQL Server는 생년월일로부터 나이를 계산하는 효율적인 방법을 제공합니다. CAST()
함수는 생년월일 문자열을 DATE
/DATETIME
데이터 유형으로 쉽게 변환하여 연령 판별을 포함한 다양한 날짜 계산을 가능하게 합니다.
다음 샘플 데이터를 고려해보세요.
ID | Name | DOB |
---|---|---|
1 | John | 1992-01-09 00:00:00 |
2 | Sally | 1959-05-20 00:00:00 |
DATEDIFF()
DATEDIFF()
함수는 두 날짜의 차이를 계산합니다. 이를 GETDATE()
(현재 날짜 및 시간 제공)과 결합하면 다양한 단위로 나이를 확인할 수 있습니다.
<code class="language-sql">SELECT ID, Name, DATEDIFF(hour, DOB, GETDATE()) AS AgeInHours, CONVERT(int, ROUND(DATEDIFF(day, DOB, GETDATE()) / 365.25, 0)) AS AgeYearsApprox FROM table_name;</code>
1년 평균 일수(365.25)를 고려하여 대략적인 연령을 연 단위로 계산합니다. 정확한 결과를 위해서는 보다 정확한 방법이 필요합니다.
향상된 연령 계산 방법
정확성을 높이려면, 특히 윤년을 고려할 때 더욱 정교한 접근 방식이 권장됩니다.
정수 연령:
이 방법은 전체 연도를 제공합니다.
<code class="language-sql">SELECT ID, Name, (YEAR(GETDATE()) - YEAR(DOB)) - CASE WHEN MONTH(GETDATE()) < MONTH(DOB) OR (MONTH(GETDATE()) = MONTH(DOB) AND DAY(GETDATE()) < DAY(DOB)) THEN 1 ELSE 0 END AS AgeYearsInt FROM table_name;</code>
십진수 연령(더 정확함):
이 계산은 분수 연도를 포함하여 보다 정확한 연령을 제공합니다.
<code class="language-sql">SELECT ID, Name, DATEDIFF(year, DOB, GETDATE()) + CASE WHEN DATEADD(year, DATEDIFF(year, DOB, GETDATE()), DOB) > GETDATE() THEN -1 ELSE 0 END AS AgeYearsDecimal FROM table_name;</code>
이러한 개선된 방법은 보다 정확한 연령 계산을 제공하고 윤년 및 연도 차이의 복잡성을 처리하여 보다 신뢰할 수 있는 결과를 제공합니다. 귀하의 정밀도 요구 사항에 가장 적합한 방법을 선택하십시오.
위 내용은 생년월일을 사용하여 SQL Server에서 나이를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!