我在MySQL數據庫表中有一個BirthDate列來存儲用戶的出生日期。現在我有兩個字段的HTML/PHP形式(1. Age from 2. Age To)。如何通過MySQL查詢使用BirthDate列獲得年齡?
如果用戶想要獲得年齡在10年到20年之間的所有用戶,是否可以使用BirthDate列進行MySQL查詢。
感謝
我在MySQL數據庫表中有一個BirthDate列來存儲用戶的出生日期。現在我有兩個字段的HTML/PHP形式(1. Age from 2. Age To)。如何通過MySQL查詢使用BirthDate列獲得年齡?
如果用戶想要獲得年齡在10年到20年之間的所有用戶,是否可以使用BirthDate列進行MySQL查詢。
感謝
您的查詢將類似於此:
SELECT * FROM your_table WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 20;
select * from table where
(year(curdate())-year(dob))-(right(curdate(),5)< right(dob,5))
between 10 and 20
你可以得到這樣
SELECT column1, column2,
DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(dob)), '%Y') + 0 as age
WHERE age >10 AND age <20 ;
這應該是選定的答案。這將年齡推遲到今年的一天。 – James 2015-04-15 19:23:13
,檢查的年份和月份另一種解決方案:
SELECT * FROM yourTable WHERE FLOOR(DATEDIFF(curdate(), birthdate)/365.25) BETWEEN 10 AND 20
它也可以通過使用子查詢achived:
select *
from (select *, TIMESTAMPDIFF(YEAR, birthday, NOW()) as age from table_name) as sub_query
where age between 10 AND 20
什麼是出生日期字段的數據類型? – 2011-04-08 07:02:21
@dorkitude:日期 – Awan 2011-04-08 07:04:11