Лучшим по скорости вариантом будет индекс по дате и условие
WHERE `date` >= '2017-08-01' AND `date` < '2017-09-01'
Можно, конечно, сделать запрос вида
WHERE YEAR(`date`) = 2017 AND MONTH(`date`) = 8
но такой запрос, как и BETWEEN не будет использовать индекс.