我有一个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
|------------------------|-------------------------|
请帮我解决这个问题......
谢谢。
答案 0 :(得分:3)
假设created
为datetime
:
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)。