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


Select people whose birth dates are +/- 5 years (of a PHP dob variable)

假设我的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。

编辑2:我在查询中没有 WHERE dob 子句,因为到目前为止我尝试的所有方法都失败了。

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

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

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