计数不返回SQL中的总计数值

时间:2015-03-26 02:36:23

标签: php mysql sql datetime count

我有一个MySQL数据库,它有一个signUp表。该表有一个名为created的字段,它是注册日期的占位符。格式为例如:[2014-10-12 17:48:24]。

有很多用户在一天内注册。我正在尝试计算每个注册。

我的代码显示单个日期,例如:[20141012000000],但计数仍为1.

SELECT DISTINCT TRUNCATE(created,-6) as created, 
       COUNT(*) as CountCreated 

FROM signUp 

WHERE created >= '20000101000000' AND created <= '30000101000000' 

GROUP BY created

---SQL RESULT---

|------------------------|-------------------------|
|Created                      CountCreated
|------------------------|-------------------------|
|20141012000000                  1
|------------------------|-------------------------|
|20141015000000                  1                
|------------------------|-------------------------|

该日期有超过30个注册。 我使用了truncate,以便在WHERE语句中比较该值,并省略 TIME 并仅返回 DATE 。时间归零。

我想要的是什么:

我只想获得该日期创建字段的总数。例如我的[20141012000000]的签名是30,所以我需要它像这样

|------------------------|-------------------------|
|Created                      CountCreated
|------------------------|-------------------------|
|20141012000000                  30
|------------------------|-------------------------|
|20141015000000                  33                
|------------------------|-------------------------|

请帮我解决这个问题......

谢谢。

2 个答案:

答案 0 :(得分:3)

假设createddatetime

SELECT date(created) as created,  COUNT(*) as CountCreated 
FROM signUp 
GROUP BY date(created);

如果是字符串:

SELECT left(created, 10) as created,  COUNT(*) as CountCreated 
FROM signUp 
GROUP BY left(created, 10);

答案 1 :(得分:0)

您还必须按照该场景中的截断值进行分组,然后删除不同的值。但更好的选择只是使创建的字段成为时间戳,然后使用date(created)。