在php中搜索年龄

时间:2011-08-19 14:46:39

标签: php sql

我正在尝试建立一个搜索功能,它可以按年龄范围获得结果。数据库包含用户的生日(例如1980-09-11 00:00:00)。现在我正在尝试搜索用户,例如使用$ agefrom = 15;和$ ageto = 18; ..但我现在不知道php代码和db语句应该是什么样的..

我想在php中创建最多的东西然后只做一个sql查询,比如(birth< birth_to AND birth> birth_from)..

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

最简单的查询,无法完全准确地使用

SELECT ...
FROM ...
WHERE YEAR(birthday) BETWEEN (YEAR(now()) - 18, YEAR(now()) - 15)

如果一个人的生日在特定年份尚未发生(例如,它是5月1日,并且他们的b日是6月15日),这将失败。处理这种情况需要更多的日期数学来检查“年份是对的,但是日/月是错误的”。

答案 1 :(得分:0)

我认为最简单的方法是在15年和18年前构建所需的日期(在PHP中),然后使用BETWEEN语句将它们放在查询中。轮到午夜或者你会得到不好的边缘情况。