mysql datetime格式化日期(mysql start with)

*版权声明:本文为博主原创文章,转载请注明出处。*我们在日常数据统计时常会遇到“2018-12-1216:21:12”or“2018-12-1216:21:12.609000”这样的时间格式,假如要统计某一天产生了多少条数据量,SQL该怎么写呢?本文希望能够对大家学习和使用有所帮助。contentcreateTime设备2018-12-1015:20:20…

大家好,又见面了,我是你们的朋友全栈君。

我们在日常数据统计时常会遇到 “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
  • 如果只是简单的统计一两天的数据量,到是可以写一条语句,改改日期就可以实现,mysql实现(其中一种写法)。
-- 统计 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;
  • 如果是需要统计最近60天,每一天对应的数据量是多少,又怎么实现呢?难道用以上改时间的方法更改60+ 次吗? 当然不是…

此时就需要对日期时间进行格式化处理

方法:
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.net/129176.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号