Чтобы получить возраст по дате в MySQL, вы можете использовать различные методы. Вот несколько подходов:
-
Функция DATEDIFF:
Вы можете использовать функцию DATEDIFF для вычисления разницы между заданной датой и текущей датой. Предположим, у вас есть столбец с именем «дата рождения» в таблице «пользователи», для получения возраста можно использовать следующий запрос:SELECT DATEDIFF(CURDATE(), birthdate) / 365 AS age FROM users; -
Функция TIMESTAMPDIFF:
Функция TIMESTAMPDIFF также может использоваться для расчета возраста. Он вычисляет разницу между двумя датами в указанной единице измерения. Вот пример:SELECT TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) AS age FROM users; -
Функция ГОД:
Если вам нужен только год компонента возраста, вы можете использовать функцию ГОД. Вот пример:SELECT YEAR(CURDATE()) - YEAR(birthdate) AS age FROM users; -
Использование DATE_FORMAT.
Другой подход — использовать функцию DATE_FORMAT для извлечения года из даты рождения и последующего расчета возраста. Вот пример:SELECT YEAR(CURDATE()) - YEAR(DATE_FORMAT(birthdate, '%Y-%m-%d')) AS age FROM users; -
Пользовательская функция:
При желании вы можете создать пользовательскую функцию для расчета возраста. Вот пример создания функции с именем «getAge»:DELIMITER // CREATE FUNCTION getAge(birthdate DATE) RETURNS INT DETERMINISTIC BEGIN DECLARE age INT; SET age = YEAR(CURDATE()) - YEAR(birthdate); IF DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(birthdate, '%m%d') THEN SET age = age - 1; END IF; RETURN age; END// DELIMITER ; -- Example usage: SELECT getAge(birthdate) AS age FROM users;