Jak ustawić SQL, aby znaleźć rekordy od ostatniej niedzieli do tej niedzieli (1 tydzień)
To jest podobne do tego, co mam teraz, czyli:
SELECT COUNT(author) FROM `posts` WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK) AND author='FooBar'
To da mi liczbę, ile razy autor opublikował w ciągu ostatniego tygodnia.
Chcę zamiast tego mieć go, jeśli mam uruchomić program w niedzielę o 17:30, aby poszukać postów od ostatniej niedzieli 12:00 AM do tej niedzieli 12:00 AM. Podobnie, jeśli zapomnę uruchomić go w niedzielę i jest poniedziałek. Nadal chcę, aby działał od ostatniej niedzieli 12:00 AM do niedzieli, która minęła 12:00
Edytować:
Zrobiłem to, czego potrzebowałem, używając PHP, aby utworzyć poprawną instrukcję SQL, ale wciąż jestem ciekawy, jak to zrobić w 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'";
?>