我使用以下select语句来获取过去x
天内数据库中的条目数,但是在新的一年之后它似乎不起作用。
SELECT COUNT(*) AS cnt FROM entries WHERE type = 'xxxxx' AND email = 'xx@xxx.com' AND date_created >= CURRENT_DATE-'30 days'
我在'30天'使用字符串的原因是因为它是作为PHP脚本中的预准备语句执行的。有没有理由不能正确地进入往年?
30天和7天的值是相同的,即使7天内包含的条目多于30天。
答案 0 :(得分:1)
我通过将SQL语句更改为以下内容来解决此问题:
SELECT COUNT(*) AS cnt FROM entries WHERE type = 'xxxxx' AND email = 'xx@xxx.com' AND date_created >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
这仍适用于准备好的陈述(用30代替?)。
我认为这是MySQL的一个错误所以我会提交一份报告,除非有人能想出原始声明不起作用的逻辑原因吗?