选择出生日期为+/- 5年(PHP dob变量)的人

时间:2013-11-15 07:16:32

标签: php mysql

因此,假设我的DoB是1975-04-28,存储在变量$dob

我想取出生于+/- 5岁的人,所以在1970-04-28和1980-04-28之间。

这是我到目前为止所得到的:

SELECT id, username FROM tusers 
WHERE profile_picture IS NOT NULL
AND settings LIKE '1,%' 
AND sex = :sex
AND last_visit BETWEEN CURDATE() - INTERVAL 21 DAY AND CURDATE()

谢谢

编辑:人们的DoB在数据库中存储为dob列,格式如下:1989-06-30。

Edit2:我在查询中没有WHERE dob子句,因为到目前为止我尝试过的所有内容都失败了。

2 个答案:

答案 0 :(得分:2)

WHERE dob BETWEEN ? - INTERVAL 5 YEAR AND ? + INTERVAL 5 YEAR

?代表匿名占位符,在执行时使用$dob变量进行参数化。鉴于您在其他地方使用了命名占位符(例如:sex),您可能也希望在此使用命名占位符 - 但请记住,您不能多次使用相同的参数名称,因此您必须使用例如:dob1:dob2

答案 1 :(得分:0)

select * from  tbl 
        where  dob 
        between  DATE_ADD(givendate,INTERVAL -5 YEAR) 
        and      DATE_ADD(givendate,INTERVAL +5 YEAR)