每天检索最近1周的记录

时间:2013-05-30 12:24:49

标签: mysql date

我创建了一个表emp_info,其中包含电子邮件,移动设备,时间戳作为字段。

我想每天检索最近1周的记录。为此,我尝试了

SELECT count(*) 
FROM `emp_info` 
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) 
ORDER BY saved_timestamp

它显示总数没有。在过去7天输入的记录,这不是我想要的输出。

所以我希望将记录输出7天,如:

  Day          count
  Monday       2
  Tuesday      0
  ....         ..
  ....         ..

所以有人请帮帮我吗?

2 个答案:

答案 0 :(得分:2)

只需将DAYNAME添加到列列表中即可汇总。

SELECT DAYNAME(timestamp), COUNT(*)
FROM `emp_info` 
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) 
GROUP BY DAYNAME(timestamp)
ORDER BY saved_timestamp

答案 1 :(得分:1)

尝试从日期中提取星期几,然后使用计数并按星期几对其进行分组,您可以计算当天的每一天。

SELECT DAYOFWEEK(DATE(timestamp)), count(*) FROM `emp_info` WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) group by DAYOFWEEK(DATE(timestamp))