SELECT *
WHERE posted >= '2009-06-01'
AND posted < '2009-07-01'
Это будет эффективно использовать индекс posted, в отличие от обоих ваших запросов.
Обратите внимание, что если вы сохраняли в postedкачестве a VARCHAR, то следующий запрос:
SELECT ... WHERE posted LIKE '2009-06%'
также будет использовать индекс.