Как получить возраст, используя столбец BirthDate по запросу MySQL? - PullRequest
5 голосов
/ 08 апреля 2011

У меня есть столбец BirthDate в таблице базы данных MySQL для хранения даты рождения пользователя. Теперь у меня есть форма в html / php с двумя полями (1. Возраст от 2. Возраст до).

Если пользователь хочет получить всех пользователей в возрасте от 10 до 20 лет, возможно ли это сделать с помощью запроса MySQL с использованием столбца BirthDate.

Спасибо

Ответы [ 5 ]

9 голосов
/ 08 апреля 2011

Ваш запрос будет выглядеть примерно так:

SELECT * FROM your_table WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 20;
8 голосов
/ 08 апреля 2011

Вы можете получить вот так

SELECT column1, column2, 
   DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(dob)), '%Y') + 0 as age     
WHERE age >10 AND age <20 ; 
5 голосов
/ 08 апреля 2011
select * from table where
(year(curdate())-year(dob))-(right(curdate(),5)< right(dob,5) )
between 10 and 20
2 голосов
/ 27 июля 2012

Еще одно решение, которое проверяет год и месяц:

SELECT * FROM yourTable WHERE FLOOR(DATEDIFF(curdate(), birthdate) / 365.25) BETWEEN 10 AND 20
0 голосов
/ 10 апреля 2015

Этого также можно достичь, используя подзапрос:

select *
    from (select *, TIMESTAMPDIFF(YEAR, birthday, NOW()) as age from table_name) as sub_query
    where age between 10 AND 20 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...