我在MySQL数据库表中有一个BirthDate列来存储用户的出生日期。现在我有两个字段的HTML/PHP形式(1. Age from 2. Age To)。如何通过MySQL查询使用BirthDate列获得年龄?
如果用户想要获得年龄在10年到20年之间的所有用户,是否可以使用BirthDate列进行MySQL查询。
感谢
我在MySQL数据库表中有一个BirthDate列来存储用户的出生日期。现在我有两个字段的HTML/PHP形式(1. Age from 2. Age To)。如何通过MySQL查询使用BirthDate列获得年龄?
如果用户想要获得年龄在10年到20年之间的所有用户,是否可以使用BirthDate列进行MySQL查询。
感谢
您的查询将类似于此:
SELECT * FROM your_table WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 20;
select * from table where
(year(curdate())-year(dob))-(right(curdate(),5)< right(dob,5))
between 10 and 20
你可以得到这样
SELECT column1, column2,
DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(dob)), '%Y') + 0 as age
WHERE age >10 AND age <20 ;
这应该是选定的答案。这将年龄推迟到今年的一天。 – James 2015-04-15 19:23:13
,检查的年份和月份另一种解决方案:
SELECT * FROM yourTable WHERE FLOOR(DATEDIFF(curdate(), birthdate)/365.25) BETWEEN 10 AND 20
它也可以通过使用子查询achived:
select *
from (select *, TIMESTAMPDIFF(YEAR, birthday, NOW()) as age from table_name) as sub_query
where age between 10 AND 20
什么是出生日期字段的数据类型? – 2011-04-08 07:02:21
@dorkitude:日期 – Awan 2011-04-08 07:04:11