简体   繁体   English

MySQL WHERE子句 - 年龄大于/小于

[英]MySQL WHERE Clause - Age Greater/Less than

I have the following SELECT that I can't get to work: 我有以下SELECT,我无法工作:

SELECT COUNT(userid) FROM login 
WHERE 17 < YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY) 
AND 46 > YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY);

The following works fine so I know the YEAR equation is sound: 以下工作正常,所以我知道YEAR方程是合理的:

SELECT YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) 
AS age FROM login;

Just wondering how to get the top one to work; 只是想知道如何让最好的人工作; also, is there a similar way then repeating the YEAR equation twice? 还有,有两种类似的方式重复YEAR方程吗?

thankyou 谢谢

It is just typo. 这只是错字。 You have missed close brackets. 你错过了括号。

SELECT COUNT(userid) FROM login 
WHERE 17 < YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) 
    AND 46 > YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY));

You can try BETWEEN in this Query and don't forget the the missing close ")" 您可以在此查询中尝试BETWEEN,并且不要忘记丢失的关闭“)”

SELECT COUNT(userid) FROM login 
WHERE YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) BETWEEN 17 AND 46

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM