mysql基础9——时间函数

统计一天中每小时的销售数量和销售金额

将数据按照小时进行分组统计 关键就是把交易时间的小时部分提取出来 使用extract()和hour()

使用extract()获取小时的值

extract(type from date)    表示从日期时间数据date中抽取type指定的部分

select extract(hour from b.transdate) as 时段,sum(a.quantity) as 数量,sum(a.salesvalue) as 金额
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
group by extract(hour from b.transdate)
order by extract(hour from b.transdate);

查询过程:

1)从交易时间中抽取小时信息

2)按交易的小时信息分组

3)按分组统计销售数量和销售金额的和

4)按交易的小时信息排序

使用hour(date时间)获取小时信息也可

select hour(b.transdate) as 时段,sum(a.quantity) as 数量,sum(a.salesvalue) as 金额
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
group by hour(b.transdate)
order by hour(b.transdate);

计算日期时间的函数

date_add(date, interval表达式 type)

表示计算从时间点’date‘开始,向前或者向后一段时间间隔的时间 ;

表达式的值为时间间隔数 正数表示向后,负数表示向前 ;

type表示时间间隔的单位(月,日,年等);

last_day(date)

表示获取日期时间“date”所在月份的最后一天的日期

假设今天是2020年12月10日,计算这个月单品销售金额的统计 以及去年同期相比的增长率

关键点是获取2019年12月10的销售数据 --> 计算2019年12月的起始和截至时间点就是关键

1)使用date_add函数获取到2020年12月10日上一年的日期:2019年12月10日

select date_add('2020-12-10',interval -1 year);

2)获取2019年12月10日这个时间节点开始上个月的日期 

select date_add(date_add('2020-12-10',interval -1 year), interval -1 month);

3)获取2019年11月10日这个时间点月份的最后一天

select last_day(data_add(date_add('2020-12-10',interval -1 year),interval -1 month));

4)计算2019年11月30日后一天的日期  12月01日

select date_add(last_day(data_add(date_add('2020-12-10',interval -1 year),interval -1 month)),interval +1 day);

5)获取截至日期

select date_add(last_day(data_add('2020-12-10',interval -1 year)),interval +1 day));

每周的不同天都会打不同的折扣,知道某天具体的价格,需要知道当前的日期以及今天是星期几 

curdate()

获取当前的日期  日期格式为“YYYY-MM-DD” 年月日的格式

dayofweek(date) 

获取日期date是周几 1表示周日,2表示周一,...,7表示周六

假设今天是2021年2月6日,查询今天商品的全部折扣后的价格

select
curdate() as 日期,
case dayofweek(curdate()) -1 when 0 then 7 else dayofweek(curdate())-1
a.goodsname as 商品价格
a.salesprice as 价格
ifnull(b.discountrate,1) as 折扣率
a.salesprice * ifnull(b.discountrate,1) as 折后价格
from demo.goodmaster as a
left join demo.discountruble as b on (a.itemnum=b.itemnum) 
and case dayofweek(curdate()) -1 when 0 then 7 else dayofweek(curdate())

case函数语法

case 表达式 when 值1 then 表达式1 [when 值2 then 表达式2] else 表达式m end

date_format  将日期按照指定格式显示

24小时制查看时间  
select date_format("2020-12-01 13:25:50", "%T");

上下午方式查看时间
select date_format("2020-12-01 13:25:50", "%r");

获取今天是星期几

datediff(date1,date2)

表示日期“date1”与“date2”之间相隔几天

计算某段时间的每天交易金额的平均值,把起始日期和截至日期之间的总金额,再除以天数

select datediff("2021-02-01","2020-12-01");

注意:mysql获取的时间就是mysql服务器计算机的系统时间  若系统有一定规模,需在多台计算机上运行,注意时间较准问题,

解决方法

1)利用windows系统自带的网络同步方式 较准系统时间

2)统一从总部myssql服务器获取时间(或采用云服务器,系统时间的可靠性更高)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

❤️新版Linux零基础快速入门到精通——第三部分❤️

❤️新版Linux零基础快速入门到精通——第三部分❤️ 非科班的我!Ta!还是来了~~~3. Linux权限管控3.1 认知root用户3.1.1 Switch User——su3.1.2 sudo命令3.1.3 为普通用户配置sudo认证 3.2 用户和用户组3.2.1 用户、用户组3.2.2 用户组管理3.2.3 用户管…

突破编程_前端_SVG(元素碰撞检测)

1 什么是碰撞检测 SVG 元素的碰撞检测,顾名思义,就是检测两个或多个 SVG 图形元素是否发生相交或重叠的过程。这在许多场景中都非常有用,例如游戏开发、动画设计、交互式图表等,需要精确判断图形元素之间的位置关系。 SVG 元素的…

声明式事务

文章目录 1.事务分类1.传统方式解决事务2.声明式事务 2.声明式事务案例1.需求分析2.解决方案分析3.数据表创建4.编写GoodsDao.java1.编写配置文件JdbcTemplate_ioc.xml2.单元测试 5.编写GoodsService.java6.配置事务管理器JdbcTemplate_ioc.xml7.进行测试 3.debug事务管理器Dat…

【Linux】在ubuntu快速搭建部署K8S(1.27)集群

ubuntu快速安装K8s1.27 (一)环境说明1.硬件环境2.Ubuntu环境设置 (二)安装配置containerd1.安装2.配置3.启动 (三)所有节点操作1.安装runc和cni2.节点系统设置、关闭临时分区3.修改内核参数4.安装 kubeadm、…

力扣爆刷第124天之回溯五连刷

力扣爆刷第124天之回溯五连刷(分割回文、复原IP、子集) 文章目录 力扣爆刷第124天之回溯五连刷(分割回文、复原IP、子集)一、131. 分割回文串二、93. 复原 IP 地址三、78. 子集四、90. 子集 II五、91. 非递减子序列 一、131. 分割…

稀碎从零算法笔记Day56-LeetCode:组合总和 Ⅳ

题型:DP、数组 链接:377. 组合总和 Ⅳ - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的…

【算法刷题day30】Leetcode:332. 重新安排行程、51. N 皇后、37. 解数独

文章目录 Leetcode 332. 重新安排行程解题思路代码总结 Leetcode 51. N 皇后解题思路代码总结 Leetcode 37. 解数独解题思路代码总结 草稿图网站 java的Deque Leetcode 332. 重新安排行程 题目:332. 重新安排行程 解析:代码随想录解析 解题思路 代码 /…

代码随想录算法训练营第四十一天| 343.整数拆分、96.不同的二叉搜索树

系列文章目录 目录 系列文章目录343. 整数拆分动态规划 96.不同的二叉搜索树动态规划 343. 整数拆分 动态规划 动规五部曲: 确定dp数组(dp table)以及下标的含义:dp[i]表示分拆数字i,可以得到的最大乘积为dp[i]。确…

盲人出行挑战与曙光:“盲人视觉辅助技术研发”助力无障碍生活

作为一名资深记者,我深感盲人朋友们在日常出行中面临的种种困难。然而,在科技日新月异的今天,一项名为蝙蝠避障的专为盲人视觉辅助技术研发的领域正在以前沿科技成果,为改善盲人出行困境带来希望之光。本文将深入探讨这一技术如何…

力扣刷题4.22

88. 合并两个有序数组 解题思路: 双指针加单指针 同时从后往前遍历原始的nums1和2,比较大小,大的往后站。 class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not ret…

FastGPT+ChatGLM3本地部署

FastGPTChatGLM本地部署 本地部署硬性要求:显存13g以上 关于环境的安装就不多赘述,conda pip 可以解决大部分问题 ChatGLM本地运行 m3e-basechatglm3-6b 在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像 从git…

【C++刷题】优选算法——动态规划第五辑

最长公共子序列 状态表示:选取第一个字符串[0,i]区间和第二个字符串[0,j]区间作为研究对象dp[i][j]: 表示s1的[0,i]区间和s2的[0,j]区间内的所有子序列中,最长公共子序列的长度 状态转移方程:text1[i] text2[j]:dp[i][j] dp[i-1][j-1] 1;text1[i] ! text2[j]:dp…

【进程地址空间】地址空间理解存在原因 | 深入理解页表写时拷贝虚拟地址

目录 地址空间深入理解 划分区域 理解地址空间 地址空间存在的意义 意义1 意义2 意义3 理解页表和写时拷贝 页表 写时拷贝 OS识别错误 理解虚拟地址 fork解释 上篇我们简单的学习了进程地址空间/页表/物理地址/虚拟地址/写时拷贝等概念。本篇深入理解下。 地址空…

算法训练营day20

一、最大二叉树 class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {//记录最大值的索引,左侧是左子树,右侧是右子树;//然后记录左子树的起始和终止索引,也记录右子树的起始和终止的索引,然后递归//循环条…

Ubuntu系统下 Nvidia驱动 + cuda驱动 + CuDNN安装与卸载

Ubuntu系统下 Nvidia驱动 cuda驱动 CuDNN安装与卸载 一、NVIDIA驱动与CUDA驱动的区别二、NVIDIA驱动安装与卸载1. 查看系统内核版本2. 查看显卡型号3. 查看是否有显卡驱动4. 禁用nouveau并重启5. 卸载旧版本6. 安装1:使用标准Ubuntu仓库进行自动化安装…

学习笔记Day21:转录组差异分析

转录组差异分析 差异分析难点在于将数据处理成需要的格式 表达矩阵 数值型矩阵-count 行名是symbol 低表达量的基因需要过滤 分组信息 因子,对照组在level第一位 与表达矩阵的列一一对应 项目名称 字符串(不要有特殊字符) TCGA-XX…

路由策略实验

一.实验拓扑图: 二.实验要求: 1.按照图示配置IP地址,R1,R3,R4上使用loopback口模拟业务网段 2.R1和R2运行RIPv2,R2,R3和R4运行OSPF,各自协议内部互通 3.在RIP和OSPF间配置双向路由引入,要求除R4…

PHP 函数的命名空间是否会影响执行顺序?

在 php 中,函数命名空间一般不会影响执行顺序。执行顺序通常由文件顺序或函数调用顺序决定。即使函数位于不同的命名空间中,只要它们在同一文件中,它们就会按照定义顺序执行。 PHP 函数命名空间是否会影响执行顺序? 简介 在 PHP…

pygame 烟花效果

# 初始化 pygame.init() screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption(烟花效果) # 焰火发射 particles [] # 焰火粒子 def firework(x, y): num_particles 100 # 每次发射的…

关于ResNet的假说

ResNet 最核心的思想就是 恒等映射吧 那么现在来提出几个问题: 为什么deeper 以后train L 会增加?恒等映射会解决什么问题?能否解决梯度非常陡峭的问题?你想到了什么模型有类似的问题,如何进行改进的? as…