大家好,又见面了,我是你们的朋友全栈君。
我们在日常数据统计时常会遇到 “2018-12-12 16:21:12” or “2018-12-12 16:21:12.609000”这样的时间格式,假如要统计某一天产生了多少条数据量,SQL 该怎么写呢?本文希望能够对大家学习和使用有所帮助。
content | createTime |
---|---|
设备 | 2018-12-10 15:20:20 |
设备 | 2018-12-11 15:20:21 |
设备 | 2018-12-11 15:20:22 |
设备 | 2018-12-12 15:20:23 |
-- 统计 2018-12-11 的数据量有多少:
SELECT
count( content ) AS content
FROM
TABLE
WHERE
createTime BETWEEN '2018-12-11'
AND '2018-12-12';
就可得到以下数据:
content |
---|
2 |
-- 统计 2018-12-12 的数据量有多少,只需简单更改下日期即可:
SELECT
content,
createTime,
count( createTime )
FROM
TABLE
WHERE
createTime BETWEEN '2018-12-12'
AND '2018-12-13'
GROUP BY
content,
createTime;
此时就需要对日期时间进行格式化处理
方法: date_format(sysdate(),’%Y-%m-%d’)
-- 时间格式化为 “YYYY-MM-DD”
SELECT
content,
date_format( createTime, '%Y-%m-%d' ) AS createTime
FROM
TABLE
WHERE
createTime > '2018-12-10';
经过格式化的日期显示为:
content | createTime |
---|---|
设备 | 2018-12-10 |
设备 | 2018-12-11 |
设备 | 2018-12-11 |
设备 | 2018-12-12 |
-- 最后再套一层sql即可统计出每一天的数据量:
SELECT
a.createTime,
count( a.createTime )
FROM
( SELECT content, date_format( createTime, '%Y-%m-%d' ) AS createTime FROM TABLE WHERE createTime > '2018-12-10' ) a
GROUP BY
a.createTime;
得到结果为:
createTime | count |
---|---|
2018-12-10 | 1 |
2018-12-11 | 2 |
2018-12-12 | 1 |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129176.html原文链接:https://javaforall.cn