2016-07-22 62 views
1

我需要一些帮助,这个MySQL查询。我在数据库中有以下字段按日期统计注册用户

id  created_on    
1  2016-02-15 12:47:09  
2  2016-02-24 12:47:09  
3  2016-02-29 12:47:09  
4  2016-03-11 12:47:09  
5  2016-03-15 12:47:09  
6  2016-03-22 12:47:09  
7  2016-04-10 12:47:09  
8  2016-04-11 12:47:09  

我需要计算过去4个月的总记录。我这样做,到目前为止,

SELECT YEAR(created_on) as year_val, MONTH(created_on) as month_val ,COUNT(*) as total 
FROM `user` 
GROUP BY YEAR(created_on), MONTH(created_on) 

感谢

+0

这岂不返回你期望什么?如果不是,它会返回什么呢?是否有错误或其他问题? –

+0

@ Don'tPanic它返回一切(年和月)而不是过去4个月 – user2636556

+0

在你的WHERE你必须添加一个测试,如当前日期和4个月的INTERVAL之间的month_val。 – user3741598

回答

2

添加

WHERE created_on> = DATE_ADD(CURDATE(),间隔 - 4月)

它将返回

"year_val" "month_val" "total" 
"2016"  "3"   "1" 
"2016"  "4"   "2" 
"2016"  "5"   "1" 
+0

谢谢!完美的作品 – user2636556

-4

SELECT COUNT(ID)FROM表WHERE created_on> = '2016年2月15日12时47分09秒' 和created_on < =“2016-06- 15 12:47:09';

应该为你的柜台工作