当前位置: 首页 > news >正文

mysql按照日期分组统计数据(date_formatstr_to_date)

学习链接

mysql按照日期分组统计数据

博主-山茶花开时的 【Mysql专栏学习】

mysql按照日期分组统计数据

Mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化,如下所示

# 可以得出 2023-01-01 08:30:50
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d %H:%i:%s')# 或者是如下,可以得出 2023-01-01
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d')# 或者是如下,可以得到,将字符串转变为日期/时间值
#(STR_TO_DATE函数与DATE_FORMAT函数的作用是相反的,
#	如果不能按照format解析str,STR_TO_DATE函数将返回NULL
#	如果其中任何一个参数为NULL,STR_TO_DATE函数将返回NULL
# )
select str_to_date('2023-10-02','%Y-%m-%d') -- 格式与date_format一致

不过很多时间不仅仅仅限于这些最基础的使用,当我们需要对于时间的数据有更高的要求时,就需要对这个函数有更多的了解了,例如按一定的时间段分组统计这段时间的数据,本期我们主要讲这个分组统计的操作,下面直接进入正题

按天统计

按天统计是一个比较基础的统计方式,大部分人也应该能直接写出来

SELECTdate_format( o.bill_date, '%Y-%m-%d' ) evertday,COUNT(*) orderNumFROM TABLE o 
GROUP BYevertday 
ORDER BYevertday DESC

在这里插入图片描述

按周统计

第一种
SELECTsubdate( date_format( o.bill_date, '%Y-%m-%d' ), date_format( o.bill_date, '%w' ) ) weekend,COUNT(*) orderNum 
FROMtest o 
GROUP BYweekend 
ORDER BYweekend DESC LIMIT 9

在这里插入图片描述

这边可以看出日期已经按照周进行排序分组了,7月30到8月5号的数据都已经统计到了7月30这个weekend中 我们简单剖析一下: 首先date_format(o.bill_date,‘%Y-%m-%d’)大家都很清楚会把日期变成yyyy-MM-dd形式
在这里插入图片描述
而date_format(o.bill_date,‘%w’)会统计这天是这周的礼拜几,这个参数我在最后整理了一张表格可供大家查看使用 那么8月2号正好是礼拜三,再通过subdate函数去减一下这个日期就可以统计出来一个对应的时间了,或者也有朋友喜欢用DATE_SUB函数都是一样的效果,这样就统计出来了上周末的时间,也就是上周末到这周末是一个轮回
在这里插入图片描述

第二种
SELECTweekday( bill_date ) AS weekday,date_format( date_add( bill_date, INTERVAL - ( weekday( bill_date ) + 1 ) DAY ), '%Y-%m-%d' ) AS monday,count( 1 ) 
FROMt 
GROUP BYmondayorder BY monday DESC

总体的思路都差不多,计算出了上周日的时间点进行group by
在这里插入图片描述

按月统计

按月统计的话就是另外一种思路了,因为按周的统计的话还存在日的概念,而按月统计的话就可以省略掉日期了

SELECTDATE_FORMAT ( bill_date, '%Y-%m' ) months,count( 1 ) count 
FROMt 
GROUP BYmonthsorder BY months DESC

在这里插入图片描述

按年统计

这个跟按月统计一个道理,只统计年份就可以了

select DATE_FORMAT( bill_date, '%Y' ) months,count(1 ) count from t group by monthsorder by months desc

在这里插入图片描述

格式描述
%a三个字符缩写的工作日名称,例如: Mon,Tue,Wed等
%b三个字符缩写的月份名称,例如: Jan,Feb,Mar等
%c以数字表示的月份值,例如: 1, 2, 3…12
%D以数字表示月份中的某天(可理解为一个月之中的第几天),后跟英文后缀,例如: 1st,2nd,3rd等
%d以数值表示月份中的某天,如果是小于10的数字,该数字需要加前导0, 例如: 00,01,02, …31
%e以数值表示月份中的某天,小于10的数字不需要加前导0,例如: 1,2,… 31
%f微秒,范围在(000000到999999)
%H24小时格式的小时,前导加0,例如: 00,01…23
%h12小时格式的小时,前导加0,例如: 00,01 … 12
%I与%h相同12小时格式的小时,前导加0,例如: 00,01 … 12
%i分钟,范围在00到59
%j一年中的的第几天,前导加0,例如: 001,002,… 366
%k24小时格式的小时,无前导0,例如: 0,1,2 … 23
%l12小时格式的小时,无前导0,例如: 1,2 … 12
%M月份全名称,例如: January, February…December
%m以数值形式显示的月份名称,前导加0,例如: 01,02,… 12
%pAM或PM,取决于其他时间说明符
%r表示时间,12小时格式hh:mm:ss AM/PM
%S秒,前导加0,例如: 00,01…59
%s与%S相同
%T表示时间,24小时格式hh:mm:ss
%U表示周数,星期日为一周的第一天,例如:00,01,02 … 53时,前导0的周数
%u表示周数,星期一为一周的第一天,例如:00,01,02 … 53时,前导0的周数
%V与%U相同,它与%X一起使用
%v与%u相同,它与%x一起使用
%W工作日的全称,例如: Sunday, Monday,…, Saturday
%w工作日,以数字来表示(0 = 星期日,6 = 星期六)
%X周的四位数表示年份,第一天是星期日,经常与%V一起使用
%x周的四位数表示年份,第一天是星期一,经常与%v一起使用
%Y表示年份,四位数,例如: 2000,2001,…等
%y表示年份,两位数,例如: 00,01,…等
%%将百分比(%)字符添加到输出

相关文章:

mysql按照日期分组统计数据(date_formatstr_to_date)

学习链接 mysql按照日期分组统计数据 博主-山茶花开时的 【Mysql专栏学习】 mysql按照日期分组统计数据 Mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化,如下所示 # 可以得出 2023-01-01 08:30:50 select DATE_FORMAT(2023-01-01…...

【C++程序员必修第一课】C++基础课程-07:switch 分支选择

1 本课主要内容: 为什么需要有 switch 多分支选择?应用场景在哪里?switch 多分支选择的应用讲解:case, break,default 2 主要知识点: 为什么需要有 switch 多分支选择 思考一个问题,数学老师需要统计班上同…...

initramfs介绍

initramfs介绍 什么是initramfs? initramfs(Initial RAM Filesystem)是一种临时文件系统,它在Linux系统启动过程中被加载到内存中。它包含了必要的驱动程序、工具和配置文件,用于在内核启动后挂载真实的根文件系统之…...

数据结构与算法:二分查找(心得)

前言 前些天我做了一道题目,题目中要求使用二分查找,我便按照我心中的二分查找,信心满满的提交上去了。结果发现无限循环,后面我便去查阅了资料 二分查找的条件 用于查找的内容需要是有序的查找的数量只能是一个 二分查找的二种方…...

项目管理之分析项目特点的方法

在管理项目时,了解项目的目标和实现方法可以帮助我们更好地规划和执行项目。根据项目的目标和实现方法的不同,可以将项目分为四种类型:地、水、火和气。 对于工程项目,采用基于活动任务的计划管理方法,使用活动网络图…...

MyBatisPlus(二十一)乐观锁

使用场景 用于当有多个用户同时修改同一条数据的时候,只允许有一个修改成功。 实现原理 使用一个字段,用于记录数据的版本。 当修改数据时,会去检测当前版本是否是正在修改的版本,同时修改成功后会把 版本号 1。 实现方式 配…...

node 通过axios发送post请求(FormData)

方案一: const axios require(axios) const FormData require(form-data) const fs require(fs)const sdUpscaleOnAzure async (req, res) > {const data new FormData()data.append(image, fs.readFileSync(/temp/ai/sd/download/1.png))let config {hea…...

2024 王道考研-数据结构

第二章 线性表算法题(线性表的顺序表示) 二、综合应用题 01.从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位 置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。 算法思想:搜索整个顺序表&#xf…...

【疯狂Java讲义】Java学习记录(使用jar命令打包)

jar命令 把多个文件打包成一个压缩包——这个压缩包和WinZip的压缩格式是一样的。 区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹里包含一个MANIFEST.MF的文件(清单)。 通常来说,得到的压缩包有3种(压缩格…...

数据库第一、二章作业

只为记录与分享 第1,2章作业.xls 题量: 34 满分: 100 一. 单选题(共34题) 1. (单选题)在数据库中,下列说法( )是不正确的。 A. 数据库避免了一切数据的重复B. 若系统是完全可以控制的,则系统可确保更新…...

将数组拆分成斐波那契序列

题目描述 示例 代码如下&#xff1a; public class SplitIntoFibonacci {LinkedList<Integer> res new LinkedList<>();public List<Integer> splitIntoFibonacci(String num) {if(num.length() < 3) return res;if(dfs(num, 0)) return res;return new…...

【Linux】:权限

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…...

8年软件测试工程师感悟——写给还在迷茫中的朋友

这两天和朋友谈到软件测试的发展&#xff0c;其实软件测试已经在不知不觉中发生了非常大的改变&#xff0c;前几年的软件测试行业还是一个风口&#xff0c;随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业&#xff0c;目前软件测试行业“缺口”已经基本饱和。当然&a…...

CleanMyMac苹果电脑清理软件是智商税吗?最全评测价格、清理效果一次说清

这是一篇CleanMyMac最全评测&#xff01;价格、清理效果一次说清&#xff0c;告诉你它真不是智商税! 升级Ventura系统之前&#xff0c;我用的是CleanMyMac X绿色版&#xff08;绝不提倡这个行为&#xff09;。更新到Ventura之后&#xff0c;之前很多绿色软件失效&#xff0c;浪…...

【pytorch 中 torch.max 和 torch.argmax 的区别】

torch.max 和 torch.argmax 的区别 1.torch.max torch.max(input, dim, maxNone, max_indicesNone, keepdimFalse) -->> (Tensor, LongTensor) 作用&#xff1a;找出给定tensor的指定维度dim上的上的最大值&#xff0c;并返回最大值在该维度上的值和位置索引。 应用举…...

无效的 page.json [“window“] 页面.json配置了“window“: {“disableScroll“: true}

问题&#xff1a;启动小程序时报错 无效的 page.json ["window"] 页面 解决&#xff1a; app.json 全局配置才使用window对象&#xff0c;在单独的页面直接写disableScroll:true即可 //app.json中添加&#xff0c;window里面添加就可以了 "window": { …...

2023最新短视频配音软件~

随着互联网的迅猛发展&#xff0c;网络平台上的影视剧配音逐渐成为一种热门赚钱方式。那么&#xff0c;想要参与影视剧配音赚钱&#xff0c;就需要拥有一款好用的配音软件。下面我就为大家介绍一款最新的影视剧配音神器&#xff01; 悦音配音 这是一款大家都在用的配音工具&am…...

【内网击穿工具 】NATAPP

内网穿透又叫内网映射&#xff0c;功能是把内网IP映射到公网&#xff0c;使公网也能轻松访问所搭建的服务。 内网与外网 外网指的是一个组织或网络中可公开访问的网络&#xff0c;即对外开放的网络。外网可以通过公共互联网进行访问 内网是相对于外网而言的&#xff0c;指的…...

vue 使用crypto.js解密后,用JSON.parse转义报错非空白格解决办法

问题&#xff1a; 用JSON.parse转义crypto解密后的json字符串会发生错误。如图&#xff1a; 原因&#xff1a; 那是因为crypto自己加了一些未可见的字符&#xff0c;所以用正常的JSON.parse(xxxx)会报错。 解决办法&#xff1a; JSON.parse(xxxx.replace(/[\u0000-\u001F\u…...

全景分割的自监督学习

在本章中,我们将第3章中讨论的SSL方法扩展到语义和全景分割任务。使用手动生成的标签训练的卷积神经网络通常用于语义或实例分割。 在精准农业中,自动化花朵检测方法使用监督模型和后处理技术,随着花朵的外观和数据采集条件的变化,这些技术可能无法始终如一地执行。我们提…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...