这与我现在所拥有的类似,即:
SELECT COUNT(author) FROM `posts` WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK) AND author='FooBar'
这将让我计算作者在过去 1 周内发帖的次数。
我想要它,所以如果我要在周日下午 5: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'";
?>