Я пытаюсь подсчитать, сколько лет человеку в базе данных.
Предположим, у вас есть эта простая таблица:
student(id, birth_date);
Где id - это первичный ключ (действительно, таблица более сложная, но я упростил ее).
Я хочу узнать, сколько лет одному человеку:
select id, datediff(curdate(),birth_date)
from student
Но он возвращает результат в днях, а не в годах. Я мог бы разделить его на 365:
select id, datediff(curdate(),birth_date) / 365
from student
Но он возвращает значение с плавающей запятой, и я хочу целое число.
Чтобы я мог рассчитать годы:
select id, year(curdate())-year(birth_date)
from student
Но есть проблема: например, сейчас май, если на человека, родившегося в июне 1970 года, ему еще 31 год, а не 32, но выражение возвращает 32.
Я не могу выйти из этой проблемы, кто-то может мне помочь?