mySql按日期获取注册用户总数

时间:2014-06-03 19:21:32

标签: php mysql

我有一个表格,可以输入像这样的新注册用户

mytable
+----+---------------------+------+
| id | timestamp           | name |
+----+---------------------+------+
| 1  | 2014-06-03 00:02:40 | john |
+----+---------------------+------+
| 2  | 2014-06-03 00:02:41 | sue  |
+----+---------------------+------+
| 3  | 2014-06-03 00:02:42 | fran |
+----+---------------------+------+
| 4  | 2014-06-02 00:02:40 | mark |
+----+---------------------+------+
| 5  | 2014-06-02 00:02:41 | tim  |
+----+---------------------+------+

我想按日期组织用户总数。这适用于我硬编码日期

SELECT * FROM mytable WHERE timestamp LIKE '%2014-06-03%'

问:我如何按日期获取整个表的注册用户数? 这是我的尝试,但这给了我需要的2列,但count(id)返回1

SELECT timestamp, COUNT(id)
FROM mytable
WHERE timestamp >= "2014-01-01" 
AND timestamp < DATE_ADD("2015-01-01", INTERVAL 1 DAY)
GROUP BY timestamp

1 个答案:

答案 0 :(得分:1)

SELECT DATE(timestamp) AS date, COUNT(id)
FROM mytable
GROUP BY DATE(timestamp)

由于您的时间戳实际上是时间戳并且包含小时/分钟/秒数据,因此您无法直接对其进行分组 - 您也可以按hh:mm:ss进行分组。所以你按DATE(timestamp)进行分组,它将提取日期部分(yyyy-mm-dd)并仅按此分组。