Wie man SQL so einstellt, dass Datensätze vom letzten Sonntag bis zu diesem Sonntag gefunden werden (1 Woche)

Dies ähnelt dem, was ich jetzt habe, nämlich:

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

Dies gibt mir einen Überblick darüber, wie oft ein Autor in der letzten Woche gepostet hat.

Ich möchte es stattdessen so haben, wenn ich das Programm am Sonntag um 17.30 Uhr ausführen soll, um nach Beiträgen vom letzten Sonntag um 12.00 Uhr bis zu diesem Sonntag um 12.00 Uhr zu suchen. Ebenso, wenn ich vergesse, es am Sonntag und Montag jetzt laufen zu lassen. Ich möchte immer noch, dass es vom letzten Sonntag um 00:00 Uhr bis zum Sonntag kurz nach 00:00 Uhr läuft

Bearbeiten:

Ich habe mit PHP das getan, was ich brauchte, um die richtige SQL-Anweisung zu erstellen, aber ich bin immer noch neugierig, wie dies nur mit SQL möglich ist.

<?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'";
?>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage