Mysql SQL-Between。。而且。。。与年份()合并
我有下面的查询,它给了我一个关于错误语法的错误Mysql SQL-Between。。而且。。。与年份()合并,mysql,sql,Mysql,Sql,我有下面的查询,它给了我一个关于错误语法的错误 SELECT tel_no FROM donors AS dnr LEFT JOIN donations AS dn ON dnr.id = dn.donor_id LEFT JOIN donation_methods AS dm ON dn.donation_method_id = dm.id WHERE NOW() >= DATE_ADD(dn.created, INTERVAL dm.recovery_tim
SELECT tel_no
FROM donors AS dnr
LEFT JOIN donations AS dn ON dnr.id = dn.donor_id
LEFT JOIN donation_methods AS dm ON dn.donation_method_id = dm.id
WHERE NOW() >= DATE_ADD(dn.created, INTERVAL dm.recovery_time DAY)
AND dnr.gender = 'female'
AND EXTRACT(YEAR FROM dnr.dob) - YEAR() BETWEEN 40 AND 54 //syntax error here
AND dnr.blood_group_id = 2
它给了我这个错误:
检查与您的MySQL服务器版本对应的手册,以了解在40和54之间以及dnr.blood_group_id=2之间使用的正确语法
错误的语法在哪里 YEAR()
需要一个date/dateime参数。你所需要的只是
AND YEAR(dnr.dob) - YEAR(CURDATE()) BETWEEN 40 AND 54
请注意,你的论点是相反的,除非你实际上与未来的出生日期不一致。你要做什么
AND (1973 - 2014) BETWEEN 40 AND 54 which becomes -41 BETWEEN 40 AND 54
谢谢你的回答!太好了,是的,我一定是生活在月球上才扭转了ARG!再次感谢这个方法实际上是CURDATE()。。对于任何可能会遇到麻烦的人。。