2015-03-03 75 views
0

我想写一个查询,其中我需要获取/计数在同一日期注册的记录。但问题是,在mysql结构created_date字段中有“datetime”结构。Mysql查询通过从日期时间中删除时间来计算结果

让我给你举例

如果5人都对2015年2月11日登记的2015年2月25日至6人注册。它将输出

Sno. Date.   count 
1) 2015-02-25  5 
2) 2015-02-11  6 

这里是为了更好地理解附加的数据库行的样本 http://i.stack.imgur.com/iPeLl.png

+1

到目前为止,你有什么尝试? – Jens 2015-03-03 06:56:32

+0

'date(created_at)'只会在您的查询中给您日期 – 2015-03-03 06:57:28

回答

1
SELECT date(created_at),count(*) FROM myTable GROUP BY date(created_at) 
0

您的查询应该是这样的:

select date(created_at) created_at, count(*) from TABLE 
    group by date(created_at) 

日期之间选择

select date(created_at) created_at, count(*) from TABLE 
    where date(created_at) >= '2015-02-11' and date(created_at) <= '2015-02-25' 
    group by date(created_at) 

随着between

select date(created_at) created_at, count(*) from Mytable 
    where date(created_at) BETWEEN '2015-01-05' AND '2015-02-25' 
    group by date(created_at) 

参考:count()

+0

如果我需要通过日期选择器来计算两个日期之间的数据,该怎么办?请帮助我 – 2015-03-03 07:08:41

+0

@AnilSingh使用'where'组前 – 2015-03-03 07:11:07

+0

我试过这个查询select date(created_at)created_at,count(*)from Mytable where created_at BETWEEN'2015-02-25'AND'2015-01-05'group按日期(created_at) ,但它给了我空的结果 – 2015-03-03 07:14:34

0
It might be the one that you expected. 

SELECT 
    DATE_FORMAT(created_at,"%Y-%m-%d") AS Date, 
COUNT(*) AS count 
FROM table_name 
GROUP BY DATE_FORMAT(created_at,"%Y-%m-%d") 
ORDER BY created_at DESC; 

这个查询将已注册的人,每天算。当然,最新的注册将首先出现。