簡體   English   中英

使用 MySQL 中的年齡條件從出生日期計算年齡

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM