Определить возраст любого из пользователей в базе данных MySQL ее же средствами можно достаточно просто , если вычислить разницу между текущим годом и годом его рождения, а из результата вычесть единицу, если текущий день находится к началу календаря ближе, нежели день рождения юзера.
Приведенный ниже запрос выводит имя, дату рождения каждого пользователя и его возраст.
SELECT `name`, `birth`, (YEAR(CURRENT_DATE)-YEAR(`birth`))-(RIGHT(CURRENT_DATE,5)<RIGHT(`birth`,5) ) AS `age` FROM `users` ORDER BY `name`;
В этом запросе функция YEAR() выделяет из даты год, а RIGHT() - пять крайних справа символов, представляющих календарный день (MM-DD). Часть выражения, сравнивающая даты, выдает 1 или 0, что позволяет уменьшить результат на единицу, если текущий день (CURRENT_DATE) находится к началу календаря ближе, нежели день рождения пользователя.
Все выражение смотрится несколько неуклюже, поэтому вместо него в заголовке соответствующего столбца результатов выводится псевдоним (age - "возраст").
Изначально таблица users в MySQL имеет такой вид:
| id | name | birth |
|---|---|---|
| 1 | Кобзарев Михаил Николаевич | 1986-01-04 |
| 2 | Иванов Иван Иванович | 1955-12-12 |
| ... | ||
| n | Пупкин Василий Петрович | 1856-03-29 |
Ссылки
Похожие публикации:
- С днем рождения, Расмус Лердорф
Сегодня празднует свой день рождения Расмус Лердорф - датский программист, написавший в 1994 году набор скриптов на Perl/CGI, обрабатывающих шаблоны... - С новым годом и днем рождения эры Unix
«Эра UNIX» - время начала отсчёта считается с полночи (по UTC) 31 декабря 1969 года на 1 января 1970 года.... - Релиз jQuery 1.5 beta
Вышла новая версия популярной библиотеки jQuery в свой день рождения 14 января. Внесено достаточно большое количество изменений. Подробно об этом... - День интернета в России
Сегодня, 7 апреля по традиции празднуется День Рунета, поскольку в этот день 1994 года в международной базе данных национальных доменов...
