如何选择年龄范围内的人

时间:2013-11-29 19:59:51

标签: mysql select pdo

我已经尝试了所有其他问题/解决方案,但没有回答。所以这就是:我需要SELECT * FROM people WHERE(dob是18到40)

但我的dob存储为DATE类型YYYY-MM-DD

需要选择18到40岁之间的人!

5 个答案:

答案 0 :(得分:2)

您需要使用BETWEEN年份计算TIMESTAMPDIFF(YEAR,'1980-02-04',NOW())

SELECT * FROM people WHERE TIMESTAMPDIFF(YEAR,`dob`,NOW()) BETWEEN  18 AND 40

See fiddle here

TIMESTAMPDIFF

YEAR(date)

答案 1 :(得分:1)

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

答案 2 :(得分:1)

你必须从今天开始计算40年前,从18年前开始计算。假设它是1940-01-011980-01-01,那么它将是:

WHERE dob BETWEEN '1940-01-01' AND '1980-01-01';

答案 3 :(得分:0)

因为年龄与今天相关:

select * from people where 
date_sub(curdate(), interval 40 year)  =< dob
and date_sub(curdate(), interval 18 year) >= dob

这适用于任何版本的mysql

答案 4 :(得分:0)

因为我不知道您使用的SQL方言我采用了完整的变体

因为age现在 - 出生(!)

select * from people where
    current date - date(birth) > MINAGE
    and
    current date - date(birth) < MAXAGE

current date取决于您正在使用的SQL