Как настроить SQL для поиска записей с прошлого воскресенья по это воскресенье (1 неделя)

Это похоже на то, что у меня сейчас, а именно:

SELECT COUNT(author) FROM `posts` WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK) AND author='FooBar'

Это подсчитает, сколько раз автор писал за последнюю 1 неделю.

Вместо этого я хочу иметь его, поэтому, если я хочу запустить программу в воскресенье в 17:30, чтобы искать сообщения с прошлого воскресенья 12:00 до этого воскресенья 12:00. Точно так же, если я забуду запустить его в воскресенье, а сейчас понедельник. Я все еще хочу, чтобы он работал с прошлого воскресенья 12:00 до воскресенья, которое только после 12:00

Редактировать:

Я сделал то, что мне было нужно, используя PHP для формирования правильного оператора SQL, но мне все еще интересно, как это сделать только на SQL.

<?php
    $dayofweek = strftime("%A",time());
    if($dayofweek == "Sunday") {
        $last_sunday = date('Y-m-d h:i:s',strtotime('Last Sunday'));
        $this_sunday = date('Y-m-d h:i:s',strtotime('Sunday'));
    } else {
        $last_sunday = date('Y-m-d h:i:s',strtotime('Last Sunday',strtotime('Last Sunday')));
        $this_sunday = date('Y-m-d h:i:s',strtotime('Last Sunday'));
    }
    print "last_sunday={$last_sunday}<br>";
    print "this_sunday={$this_sunday}<br>";
    print "SELECT COUNT(author) FROM `posts` WHERE `date` <= '$this_sunday' AND `date` >= '$last_sunday' AND author='FooBar'";
?>

Ответы на вопрос(1)

Ваш ответ на вопрос