如何通过MySQL查询使用BirthDate列获取Age?

Awa*_*wan 5 php mysql zend-framework date

我在MySQL数据库表中有一个BirthDate列来存储用户的出生日期.现在我在html/php中有两个字段(1.年龄从2.年龄到).

如果用户希望获得年龄在10年到20年之间的所有用户,是否可以使用BirthDate列进行MySQL查询.

谢谢

sou*_*php 9

您的查询看起来与此类似:

SELECT * FROM your_table WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 20;
Run Code Online (Sandbox Code Playgroud)


Sha*_*ngh 8

你可以这样做

SELECT column1, column2, 
   DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(dob)), '%Y') + 0 as age     
WHERE age >10 AND age <20 ; 
Run Code Online (Sandbox Code Playgroud)


Nic*_*ssu 5

select * from table where
(year(curdate())-year(dob))-(right(curdate(),5)< right(dob,5) )
between 10 and 20
Run Code Online (Sandbox Code Playgroud)