[英]Calculating Age from Date of Birth with where condition on Age in 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.