Вычисление разницы в возрасте в годах как целое число в MySQL
Определение возраста человека в базе данных представляет собой небольшую проблему при расчете возраста . Рассмотрим таблицу «student» со столбцами «id» и «birth_date».
Чтобы вычислить возраст в днях, можно использовать выражение dateiff(curdate(),birth_date), но оно возвращает значение с плавающей запятой. . Деление на 365 также дает значение с плавающей запятой.
Вычисление лет в виде год(curdate())-год(дата_рождения) также создает проблему. Например, если человек родился в июне 1970 года, а текущая дата — май, выражение ошибочно вернет 32 года вместо 31.
Альтернативное решение для целой разницы в годах:
Чтобы решить эту проблему, рассмотрите следующий оператор SQL:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Это выражение вычисляет разницу между датой_рождения и CURDATE() в годах, в результате чего получается целое значение.
Расширение для месяцев и дней:
Чтобы посчитать разницу в месяцах, замените 'ГОД' с 'МЕСЯЦ' в выражении:
SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student
Аналогично, для разницы в днях замените «ГОД» с «ДЕНЬ»:
SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3