PHP和SQL |查询中的特定内容

PHP和SQL |查询中的特定内容,php,mysql,Php,Mysql,在DB中,我有一个包含用户生日的字段。示例:01.09.1994 我有一个PHP函数,可以计算用户的出生日期。 现在我想做的事情是: 例如,我想搜索所有18岁的用户,但我想在sql查询中这样做。这怎么会发生 "SELECT * FROM `users` WHERE `birth` = '18'" 如何使用sql自动将出生日期(1994年9月1日)转换为年龄,而不获取结果,然后使用php将生日转换为年龄?您保存的日期不是真实日期,需要使用stru to_date函数将其转换为真实日期,然后使用t

在DB中,我有一个包含用户生日的字段。示例:01.09.1994 我有一个PHP函数,可以计算用户的出生日期。 现在我想做的事情是: 例如,我想搜索所有18岁的用户,但我想在sql查询中这样做。这怎么会发生

"SELECT * FROM `users` WHERE `birth` = '18'"

如何使用sql自动将出生日期(1994年9月1日)转换为年龄,而不获取结果,然后使用php将生日转换为年龄?

您保存的日期不是真实日期,需要使用
stru to_date
函数将其转换为真实日期,然后使用
timestampdiff
您可以获得以下年龄:

mysql> select timestampdiff(year,str_to_date('01.06.1993','%d.%m.%Y'),curdate()) as age ;
+------+
| age  |
+------+
|   21 |
+------+
因此,如果表中的列名是
dob
,并且您希望查找年龄为18岁的所有用户,则可以按如下操作

select * from users
where 
timestampdiff(year,str_to_date(dob,'%d.%m.%Y'),curdate()) = 18

日期值的数据类型是什么?显示一些示例数据。你应该能够在查询中计算年龄。我已经说过了。数据是以这种方式为每个用户保存的d.m.y(01.06.1993)@JayBlanchard但我想问的是:d?我知道你是,但我们不会为你编写查询:d我给你一个提示-查找MySQL的日期函数,如
date\u SUB()
非常感谢!你的答案完全符合我的查询,目前还有效!