我想编写一些sql查询来显示今天创建的mysql数据库中的记录,上周创建的记录以及上个月创建的记录。第一个查询显示我在过去7天(包括今天)创建的结果。例如,如果今天是星期天,我想看到周一到周六(今天不是)创建的结果。同样,在第二个查询中,我想查看上个月创建的记录(不包括本月的记录)。例如,如果这是6月,我想看到5月创建的记录
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
。
答案 0 :(得分:1)
修复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)
这会计算当月的第一天,然后再过去一个月。