【发布时间】:2010-10-02 10:03:46
【问题描述】:
是的,这听起来很奇怪。
在高级个人资料搜索表单中,您可以按年龄过滤。
现在您可以在字段中输入 18 岁或其他年龄。
我将生日存储在 mysql 数据库中,在用户的生日字段中,例如:1990-02-02
那么我如何在查询中按年龄过滤?
我应该先进行查询,将所有用户的生日设为年龄,然后进行比较吗?太多了,每个用户都带走。
【问题讨论】:
标签: php mysql comparison date
是的,这听起来很奇怪。
在高级个人资料搜索表单中,您可以按年龄过滤。
现在您可以在字段中输入 18 岁或其他年龄。
我将生日存储在 mysql 数据库中,在用户的生日字段中,例如:1990-02-02
那么我如何在查询中按年龄过滤?
我应该先进行查询,将所有用户的生日设为年龄,然后进行比较吗?太多了,每个用户都带走。
【问题讨论】:
标签: php mysql comparison date
我敢打赌,这就是您要搜索的内容:
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;
我希望这会有所帮助;) 斯拉夫语
【讨论】:
未经测试,但应作为开始的基础:
SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)
【讨论】: