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 |
---|