SQL仅返回特定年龄的那些

时间:2011-03-14 19:21:28

标签: mysql

我有这个sql语句:

SELECT * FROM users WHERE (DATE_FORMAT(dob, '%Y') - $strYear)<=3 

哪种方法有点,但是如果DOB的年份(或稍后)超过$ strYear就会出错。

即。

 strYear = 1960
 dob(Y) = 1930

1930 - 1960 = -30符合<=3条件,但显然是错误的,因为我正在寻找3年范围内的用户。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

怎么样

SELECT * FROM users 
WHERE (DATE_FORMAT(dob, '%Y') - $strYear) <= 3 
AND (DATE_FORMAT(dob, '%Y') - $strYear) > 0

这可能有效。

答案 1 :(得分:0)

$ strYear好像是PHP变量......

$query = "SELECT * FROM users
          WHERE (DATE_FORMAT(dob, '%Y')-$strYear)<=3
            AND (DATE_FORMAT(dob, '%Y')-$strYear) > 0"

且差异应大于0