我必须从当天开始过滤 SQL 的结果并显示直到当天 + 10 天的所有记录。因此,如果是 12 月 22 日,我应该显示从那天开始的所有记录,而不是 1 月 1 日之后的记录。我怎样才能做到这一点?我尝试了一个像下面这样的简单查询,但它似乎只显示记录直到当月的最后一天,然后而不是显示下一年的记录,而是回到当年的第一个月。
SELECT *
FROM mytable
WHERE DAY(mydatefield) >= DAY(CURRENT_TIMESTAMP)
AND mydatefield <= DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 10 DAY)
编辑 1
我正在使用 Symfony 2 + Doctrine 2 查询构建器,因此查询必须与它们兼容
编辑 2
我通过使用 eggyal 建议的查询和这个 PHP 代码解决了 Doctrine 2 问题
$queryBuilder->where($queryBuilder->expr()->gte('mydatefield', 'CURRENT_DATE()'))->andWhere($queryBuilder->expr()->lte('mydatefield', 'DATE_ADD(CURRENT_DATE(), 10, \'DAY\')'));