从出生日期计算年龄,其中 MySQL 中的年龄条件



如何再次计算年龄条件?我只希望所有用户的年龄<50 岁

我的查询在没有 where 条件的情况下工作正常,但是当我添加WHERE age < 50时,它会给我一个错误#1054 - Unknown column 'age' in 'where clause'

SELECT u.*, YEAR(CURRENT_TIMESTAMP) - YEAR(u.user_dob) - (RIGHT(CURRENT_TIMESTAMP, 5) < 
RIGHT(u.user_dob, 5)) as age FROM tbl_users as u WHERE age < 50 

像这样更简单的东西怎么样?

where dob >= date_sub(curdate(), interval 50 year)

如果你想要年龄,你可以取年差

select timestampdiff(year, dob, curdate())

用这个更新你的年龄在where子句中:

YEAR(CURRENT_TIMESTAMP) - YEAR(u.user_dob) - (
RIGHT(CURRENT_TIMESTAMP, 5) <
RIGHT(u.user_dob, 5))

成为:

SELECT u.*, YEAR(CURRENT_TIMESTAMP) - YEAR(u.user_dob) - (
RIGHT(CURRENT_TIMESTAMP, 5) <
RIGHT(u.user_dob, 5)) AS age
FROM tbl_users AS u
WHERE YEAR(CURRENT_TIMESTAMP) - YEAR(u.user_dob) - (
RIGHT(CURRENT_TIMESTAMP, 5) <
RIGHT(u.user_dob, 5)) < 50

最新更新