mysql – 如何设置SQL以查找从上周日到本周日的记录(1周)

前端之家收集整理的这篇文章主要介绍了mysql – 如何设置SQL以查找从上周日到本周日的记录(1周)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这与我现在的相似,即:

SELECT COUNT(作者)FROM`posst` WHERE`date`> = DATE_SUB(CURDATE(),INTERVAL 1 WEEK)AND author =’FooBar’

这将给我一个作者在过去一周内发布的次数.

如果我要在周日下午5:30运行该程序来查找上周日中午12:00至本周日中午12:00的帖子,我想反而拥有它.同样地,如果我忘了在星期天运行它,现在是星期一.我仍然希望它从上周日中午12:00到凌晨12点的周日运行

编辑:

我已经完成了我需要使用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}
最佳答案
要获得最新的前一个星期天午夜,这应该这样做.将NOW()的两个实例替换为您的日期时间以检查另一个日期.

SELECT DATE_SUB(DATE(NOW()),INTERVAL DAYOFWEEK(NOW())-1 DAY) latest_sun

要提前一周获得星期日,请使用DAYOFWEEK(NOW())6天.

编辑:这是你的查询;

SELECT COUNT(author)
FROM `posts` 
WHERE author='FooBar'
  AND `date` >= DATE_SUB(DATE(NOW()),INTERVAL DAYOFWEEK(NOW())+6 DAY)
  AND `date` <  DATE_SUB(DATE(NOW()),INTERVAL DAYOFWEEK(NOW())-1 DAY)

猜你在找的MySQL相关文章