article表
字段id (int),title (string),createtime (时间戳)
比如要查询2015年3月到2017年8月份,每个自然月发布的文章是多少篇。月份没有发布文章的显示为0。比如:
Array
(
[0] => Array
(
[month] => 2015-3
[times] => 0
)
[1]=> Array
(
[month] => 2015-4
[times] => 4
)
[2]=> Array
(
[month] => 2015-5
[times] => 0
)
...
[...]=> Array
(
[month] => 2017-8
[times] => 4
)
)
6 回答
![?](http://img1.sycdn.imooc.com/5333a1660001394602000200-100-100.jpg)
阿波罗的战车
TA贡献1862条经验 获得超6个赞
select DATE_FORMAT(createtime,'%Y-%m'), count(*) from article group by DATE_FORMAT(createtime,'%Y-%m')
针对没有数据的月份,可以放在程序里循环处理一下
![?](http://img1.sycdn.imooc.com/545863aa00014aa802200220-100-100.jpg)
慕标琳琳
TA贡献1830条经验 获得超9个赞
select month ( create_time ) ,count(*) from orders where year ( create_time) = 2015 group by month (create_time)
我表里的时间存的是DATETIME 2015-05-05 23:59:59
楼上的兄弟说的很明白,没有数据,就没有默认值一说
![?](http://img1.sycdn.imooc.com/545866130001bfcb02200220-100-100.jpg)
回首忆惘然
TA贡献1847条经验 获得超11个赞
首先一点,没有数据的话,mysql也不会有数据,所以会缺失月份。尼需要用程序填充
SELECT COUNT(1) AS total,FROM_UNIXTIMESTAMP(createtime,'%Y-%m') as m from article GROUP BY m ORDER BY m ASC
- 6 回答
- 0 关注
- 3153 浏览
添加回答
举报
0/150
提交
取消