的我有這樣的SQL statment:SQL只返回
SELECT * FROM users WHERE (DATE_FORMAT(dob, '%Y') - $strYear)<=3
其中一期工程,有點兒,但如果DOB的一年多(後)超過$ strYear它出錯。
即。
strYear = 1960
dob(Y) = 1930
1930 - 1960 = -30
其滿足<=3
條件,但顯然是錯誤的,因爲我第3年範圍內尋找用戶。
任何想法?
的我有這樣的SQL statment:SQL只返回
SELECT * FROM users WHERE (DATE_FORMAT(dob, '%Y') - $strYear)<=3
其中一期工程,有點兒,但如果DOB的一年多(後)超過$ strYear它出錯。
即。
strYear = 1960
dob(Y) = 1930
1930 - 1960 = -30
其滿足<=3
條件,但顯然是錯誤的,因爲我第3年範圍內尋找用戶。
任何想法?
如何
SELECT * FROM users
WHERE (DATE_FORMAT(dob, '%Y') - $strYear) <= 3
AND (DATE_FORMAT(dob, '%Y') - $strYear) > 0
可能的工作。
$ strYear好像PHP變量...
$query = "SELECT * FROM users
WHERE (DATE_FORMAT(dob, '%Y')-$strYear)<=3
AND (DATE_FORMAT(dob, '%Y')-$strYear) > 0"
和差應大於0
編號使用ABS在這裏沒有幫助。考慮DOB = 1930,strYear = 1932.你會得到一個不正確的結果返回與ABS(-2)<= 3。 – 2011-03-14 19:28:23
赦免?你是否重複了我的陳述?是的,$ strYear是PHP。 – thebounder 2011-03-14 19:36:36
@Joe - 你的權利我錯誤的解釋第二個條件> 0是必要的 - 固定的 – bensiu 2011-03-14 19:38:51
AND(DATE_FORMAT(dob,'%Y') - $ strYear)> 0 – iluxa 2011-03-14 19:23:33