我想编写一些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/