sql查询显示今天,上周和上个月创建的记录

时间:2016-06-27 16:45:47

标签: mysql sql

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

1 个答案:

答案 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)

这会计算当月的第一天,然后再过去一个月。