我试图让会员详细说明那些没有按照给定日期范围付款的人((givendate + 8,givendate + 30)这样的 我想要这样的细节是在这些日期之间没有报酬的memebrs(((givendate + 8,givendate + 30))
像这样,如果givendate是(1-09-2008)我想要这样的日期范围(08-09-2008,30-09-2008)
我已经完成了
WHERE DATE_ADD(memberpaysched.memberPaySched_dateDue,DATE_DIFF((ADDDATE(memberpaysched.memberPaySched_dateDue, 8)),(ADDDATE(memberpaysched.memberPaySched_dateDue,30))) )< NOW()
注意今天考虑今天日期的adendate = memberpaysched.memberPaySched_dateDue
但是它给出了错误
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATEDIFF((ADDDATE(memberpaysched.memberPaySched_dateDue, 8)),(ADDDATE(memberpays' at line 18
任何人都会对此有所了解
答案 0 :(得分:1)
...
where
memberPaySched_dateDue
between '2008-09-01' + interval 7 day and '2008-09-01' + interval 29 day
答案 1 :(得分:1)
请尝试这样:
WHERE
memberpaysched.memberPaySched_dateDue BETWEEN
CURDATE() + INTERVAL 8 DAY
AND CURDATE() + INTERVAL 30 DAY
答案 2 :(得分:1)
保持简单,尽可能接近用英语表达的方式:
WHERE memberPaySched_dateDue between ADDDATE(NOW(), 8) and ADDDATE(NOW(), 30)
或者如果您有特定日期而不是now()
:
WHERE memberPaySched_dateDue between ADDDATE('2011-09-01', 8) and ADDDATE('2011-09-01', 30)
请注意,由于两个范围之间的值在执行期间是常量,因此这将是高效的(与强制每行计算的代码不同)