PHP:从年龄开始计算生日

时间:2010-10-02 10:03:46

标签: php mysql comparison date-of-birth

是的,这可能听起来很奇怪。

在高级个人资料搜索表单中,您可以按年龄过滤。

现在你要在现场输入18岁或其他年龄。

我将生日存储在mysql数据库中,在用户的生日字段中我有例子:1990-02-02

如何在查询中按年龄过滤?

我应该先做一个查询,让所有用户的生日变老,然后比较它们吗?对于每个用户来说太过分了。

2 个答案:

答案 0 :(得分:2)

我打赌这就是你要找的东西:

SELECT * FROM mytable 
WHERE TIMESTAMPDIFF(YEAR, mytable.birthday,'$currentTime') > '$ageFromForm';

要对您执行此操作的数据进行排序:

SELECT *, (TIMESTAMPDIFF(YEAR, mytable.birthday, '$currentTime')) AS age 
FROM mytable WHERE TIMESTAMPDIFF(YEAR,'$birthday','$currentTime') > '$ageFromForm' 
ORDER BY age;

我希望这会有所帮助;) 斯拉夫

答案 1 :(得分:1)

未经测试,但应作为开始的基础:

SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)