Есть задача, сделать выборку в таблице по возрасту - до ЛЕТ. Дата рождения хранится в типе поля date. Пытаюсь сделать так (25 лет для примера):
DATE_SUB(CURDATE(), INTERVAL 25 YEAR) <= birth
Но проблема в том, что если у человека прошел возраст на 1 день больше, то ему все равно 25 лет, но он уже не попадает в список. Как можно сделать с ориентировкой именно на ГОД ?
Есть ответ в официальной документации:
SELECT birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM your_table
WHERE TIMESTAMPDIFF(YEAR,birth,CURDATE()) <= 25
Мне лично считать удобнее так:
select * from t where year(curdate) - year(birth) < yourvalue
;
update
Я не знаком с MySQL совсем, но такой вариант работает в других БД
select * from t where year(curdate - birth) < yourvalue
;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать автоматическую смену внешнего ключа в таблице при удалении родительской записи в другой таблице?
У меня есть сайтИ я хочу реализовать на нём автоматическую очистку кеша
Как в данном массиве найти элемент и поменять соседнее значение? те