我是靠谱客的博主 重要长颈鹿,最近开发中收集的这篇文章主要介绍mysql 实现日期格式化(date_format),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们在日常数据统计时常会遇到 “2018-12-12 16:21:12” or “2018-12-12 16:21:12.609000”这样的时间格式,假如要统计某一天产生了多少条数据量,SQL 该怎么写呢?本文希望能够对大家学习和使用有所帮助。

contentcreateTime
设备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';

经过格式化的日期显示为:

contentcreateTime
设备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;

得到结果为:

createTimecount
2018-12-101
2018-12-112
2018-12-121

最后

以上就是重要长颈鹿为你收集整理的mysql 实现日期格式化(date_format)的全部内容,希望文章能够帮你解决mysql 实现日期格式化(date_format)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部