sql 按天分组统计问题 to_char() 函数

最近遇到一个问题,需要统计数据库中每一天的数据新增量,大家都知道可以使用 GROUP BY 对时间字段分组来实现统计每天的新增量的。关键是我我的数据库中时间字段存储的是 2016-12-16 14:21:33 这样的数据,如果直接使用这个时间字段来统计出来的是不准确的。以下原始sql语句:

SELECT pubtime, COUNT(pubtime) AS num
FROM qt_document
WHERE tid = 292
GROUP BY pubtime
ORDER BY pubtime DESC
LIMIT 10

结果看图:
没有优化

那怎么才能通过时间字段就行按天分组呢?找了找sql的函数,发现有一个 to_char() 函数,可以实现这个功能。
SQL代码如下:

SELECT to_char(pubtime, 'yyyy-mm-dd') AS time, COUNT(pubtime) AS num
FROM qt_document
WHERE tid = 292
GROUP BY time
ORDER BY time DESC
LIMIT 10

查询结果如图:
优化后的sql语句

已有 2 条评论

  1. 评论不管用了?

    1. 没有,我加了垃圾评论过滤。

添加新评论