Para obtener el último domingo anterior a la medianoche, esto debería ser suficiente. Reemplace ambas instancias de NOW()
con su fecha y hora para comprobar otra fecha.
SELECT DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())-1 DAY) latest_sun
Para obtener el domingo una semana antes, utilice DAYOFWEEK(NOW())+6 DAY
.
EDITAR:Eso haría su consulta;
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)