我想编写一些sql查询以显示今天创建的mysql数据库记录,上周创建的记录和上个月创建的记录。第一个查询显示最近7天(包括今天)创建的结果。例如,如果今天是星期天,我想查看从星期一到星期六(不是今天)创建的结果。同样,在第二个查询中,我想查看上个月创建的记录(不包括本月的记录)。例如,如果这是六月,我想查看五月创建的记录

SELECT COUNT(*) AS stdtotal FROM `login`
WHERE `account_created_date`  > DATE_SUB(NOW(), INTERVAL 7 DAY)


而另一个查询是

SELECT COUNT(*) AS stdtotal FROM `login`
WHERE `account_created_date`  > DATE_SUB(NOW(), INTERVAL 30 DAY)


请注意,我的表名是login,列名是日期类型的account_created_date

最佳答案

只需修复where子句。前7天:

WHERE account_created_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND
      account_created_date < CURDATE()


对于上个月:

WHERE account_created_date >= DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE) - 1 DAY), INTERVAL 1 MONTH) AND
      account_created_date < DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE) - 1 DAY)


这将计算当月的第一天,然后在该月的前一个月进行计算。

关于mysql - sql查询以显示今天,上周和上个月创建的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38059178/

10-10 21:31