Php mysql如何按年龄选择符合条件的记录
我使用的查询需要从年龄介于(多个年龄)之间的用户中选择行 就像我在表中有3个用户,用户有3个字段: ID | NAME | DOB 1 | A | 12-06-1980Php mysql如何按年龄选择符合条件的记录,php,mysql,sql,Php,Mysql,Sql,我使用的查询需要从年龄介于(多个年龄)之间的用户中选择行 就像我在表中有3个用户,用户有3个字段: ID | NAME | DOB 1 | A | 12-06-1980 2 | B | 12-06-1970 3|C|12-06-1990 4|D|12-06-1995 5 | E | 12-06-1985 现在如果我想要25岁以下的用户名单 姓名|出生日期 C | 12-06-1990 D|12-06-1995 对此有什么疑问?有什么想法吗 SELECT * FROM users WHERE DO
2 | B | 12-06-1970
3|C|12-06-1990
4|D|12-06-1995
5 | E | 12-06-1985
现在如果我想要25岁以下的用户名单 姓名|出生日期 C | 12-06-1990
D|12-06-1995
对此有什么疑问?有什么想法吗
SELECT * FROM users WHERE DOB
??
有什么想法吗?试试这个:
SELECT * FROM users WHERE DATEDIFF(CURDATE(), DOB)/365<25
您可以这样做:
SELECT * FROM users WHERE DOB >= (CURDATE() - INTERVAL 25 YEAR)
要从dateofbirth
date字段计算上述查询中的25,如下所示:
SELECT * FROM users
WHERE DOB >= (CURDATE() - INTERVAL FLOOR(DATEDIFF(CURDATE(),dateofbirth)/365) YEAR)
我会用这个:
select id, name, dob,
date_format(curdate(), '%Y') - date_format(dob, '%Y') -
(date_format(curdate(), '00-%m-%d') < date_format(dob, '00-%m-%d')) as age
from users
虽然这给出了正确的2000:
select
date_format('4012-12-12', '%Y') - date_format('2012-12-12', '%Y') -
(date_format('4012-12-12', '00-%m-%d') < date_format('2012-12-12', '00-%m-%d'))
选择
日期格式('4012-12-12','%Y')-日期格式('2012-12-12','%Y')-
(日期格式('4012-12-12','00-%m-%d')<日期格式('2012-12-12','00-%m-%d'))
但是,如果你只需要计算一个年龄,两种解决方案都应该有效。检查这个:如果我不想指定25岁怎么办?我想让它在查询的“从出生日期”列中获取年龄?如果我不想指定25岁怎么办?我想让它在查询的“从出生日期”列中获得年龄?我已经用一个例子更新了我的答案,这个例子是从表上的
dateofbirth
字段计算年龄('25')。@Nelson:在where中计算天数差不会提示返回年龄,您需要在select子句中输入条件。
select id, name, dob,
date_format(curdate(), '%Y') - date_format(dob, '%Y') -
(date_format(curdate(), '00-%m-%d') < date_format(dob, '00-%m-%d')) as age
from users
SELECT floor(DATEDIFF('4012-12-12', '2012-12-12')/365)
select
date_format('4012-12-12', '%Y') - date_format('2012-12-12', '%Y') -
(date_format('4012-12-12', '00-%m-%d') < date_format('2012-12-12', '00-%m-%d'))