DB

[DB] 함수를 사용하지 않고 만 나이 쉽게 계산하기

불곰1 2021. 8. 15. 20:41

만 나이를 계산하려면 생일이 지났는지, 지나지 않았는지에 따라 계산이 달라집니다. 하지만 아래에서 설명하는 수식을 사용하면 아주 쉽게 만 나이를 구할 수 있습니다.

floor((현재 연월일 - 생년월일) / 10000)

현재 날짜: 20210815
생년월일1: 20001225
select floor((20210815 - 20001225) / 10000);
-- 20

현재 날짜: 20211225
생년월일1: 20001225
select floor((20211225 - 20001225) / 10000);
-- 21

위 식이 성립하는 이유는 구하고자 하는 연도 - 생일 연도 를 하게 되면 한국 나이 - 1 의 값이 나오게 됩니다. 여기서 구하고자 하는 월, 일이 생일 월, 일보다 적다면 앞에서 구한 값에서 1살을 더 빼야 되고 많다면 뺄 필요가 없어집니다.

말로 설명하려니 더 복잡한 것 같지만 아래 예시를 보면 바로 이해를 할 수 있습니다.

현재 날짜: 20210815
생년월일1: 20001225

2021 - 2000 = 21
0815 - 1225 = -410

이를 위 수식대로 계산하면
20210815 - 20001225 = 209,590

현재 날짜: 20211230
생년월일1: 20001225

2021 - 2000 = 21
1230 - 1225 = 5
이를 위 수식대로 계산하면
20211230 - 20001225 = 210,005

10,000으로 나눈 후, 나머지는 모두 버리게 되면 만 나이가 나오게 됩니다.

이러한 계산법은 sql 뿐만 아니라 다른 곳에서도 사용이 가능합니다.