前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql datetime格式化日期(mysql start with)

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

作者头像
全栈程序员站长
发布2022-07-29 13:27:23
2.6K0
发布2022-07-29 13:27:23
举报
文章被收录于专栏:全栈程序员必看

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

我们在日常数据统计时常会遇到 “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实现(其中一种写法)。
代码语言:javascript
复制
-- 统计 2018-12-11 的数据量有多少:

SELECT
	count( content ) AS content 
FROM
TABLE 
WHERE
	createTime BETWEEN '2018-12-11' 
	AND '2018-12-12';

就可得到以下数据:

content

2


代码语言:javascript
复制
-- 统计 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’)

代码语言:javascript
复制
-- 时间格式化为 “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


代码语言:javascript
复制
-- 最后再套一层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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档