Como configurar o SQL para encontrar registros do último domingo até domingo (1 semana)
Isso é semelhante ao que tenho agora, que é:
SELECT COUNT(author) FROM `posts` WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK) AND author='FooBar'
Isso me dará uma contagem de quantas vezes um autor postou na última semana.
Eu quero, em vez disso, para que eu possa executar o programa no domingo, às 17h30, para procurar por postagens do último domingo, 12h às 12h de domingo. Da mesma forma, se eu esquecer de executá-lo no domingo e é segunda-feira agora. Eu ainda quero que ele seja executado a partir do último domingo, 12:00 AM para o domingo, que acabou de passar as 12:00 AM.
Editar:
Eu fiz o que eu precisava usando o PHP para formar a instrução SQL correta, mas ainda estou curioso sobre como fazer isso apenas em 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'";
?>