2015-03-03 78 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; 

這個查詢將已註冊的人,每天算。當然,最新的註冊將首先出現。