Per ottenere l'ultima mezzanotte precedente la domenica, questo dovrebbe farlo. Sostituisci entrambe le istanze di NOW()
con il tuo datetime per controllare un'altra data.
SELECT DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())-1 DAY) latest_sun
Per avere la domenica una settimana prima, usa invece DAYOFWEEK(NOW())+6 DAY
.
EDIT:Ciò renderebbe la tua domanda;
SELECT COUNT(author)
FROM `posts`
WHERE author='FooBar'
AND `date` >= DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())+6 DAY)
AND `date` < DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())-1 DAY)