RDBMS/MySQL

[MySQL] 생일 날짜로 나이 구하기

byunghyun23 2021. 3. 13. 23:12

MySQL에서 생일 날짜를 이용하여 나이(만)를 계산해보겠습니다.

 

먼저 TO_DAYS() 입니다.

 

TO_DAYS()는 입력 날짜를 0000년부터 1일 단위로 계산하여 값을 반환합니다.

SELECT TO_DAYS(951212);
-> 729004

SELECT TO_DAYS('2021-03-10');
-> 738224

SELECT TO_DAYS(NOW()); // 2021-03-13
-> 738227

 

다음은 ROUND() 입니다.

 

ROUND()는 입력 값을 반올림하여 반환합니다. 두 번째 인자는 표현할 소수점 자릿수를 나타냅니다.

SELECT ROUND(3.656);
-> 4

SELECT ROUND(3.656, 2);
-> 3.66

 

 

TO_DAYS()를 이용하여 일수 차이를 계산하고 이를 365로 나누면 나이를 구할 수 있습니다.

 

일수 차이는 TO_DAYS(현재날짜) 값에서 TO_DAYS(기준이 되는 날짜) 값을 빼면 구할 수 있습니다.

 

위 예제를 보면 TO_DAYS(NOW()) 값은 738227이고, TO_DAYS(951212) 값은 729004입니다.

 

일수 차이

= TO_DAYS(NOW()) - TO_DAYS(951212)

= 738227 - 729004 = 9223

즉, 95년12월12일부터 현재까지 9223일이 지났음을 알 수 있습니다.

 

이 값을 365로 나누면

 

9223 / 365 = 25.2684.. 입니다.

 

마지막으로 ROUND()를 이용하여 반올림하면 나이를 구할 수 있습니다.

SELECT ROUND((TO_DAYS(NOW()) - (TO_DAYS(951212))) / 365) AS age;
-> 25

 

 

 

 

 

 

'RDBMS > MySQL' 카테고리의 다른 글

[MySQL] 이중화 접속 MySQL JDBC URL  (0) 2020.10.13