当前位置:网站首页>实战演练 | 在 MySQL 中计算每日平均日期或时间间隔
实战演练 | 在 MySQL 中计算每日平均日期或时间间隔
2022-07-30 09:06:00 【Navicat中国】
在先前的文章先前的文章中,我们使用 Navicat for SQL Server 将 SQL Server 中给定列的平均每日计数制成表格。在今天的后续文章中,我们将通过计算基于开始日期和结束日期列的每日平均日期或时间间隔来稍微提高难度系数。出于演示目的,我将使用 Navicat Premium 和 MySQL。
计算以日为单位的电影租借时间
在 Sakila 示例数据库的 rental 表中,有两个日期字段代表一个时间间隔:它们是租借日期和归还日期。无疑,这两个字段存储租借电影的日期时间以及归还电影的日期时间。

考虑到这一点,假设我们需要编写一个查询来显示每日电影租借的平均长度。第一步将是计算所有电影租借的时长。以下是在 Navicat 中查询的样子:

若要将 rental_date 从日期时间转换为纯日期,我们可以使用 DATE() 函数。它接受任何有效的日期或日期时间表达式。
日数可以使用 MySQL DATEDIFF() 函数计算。它返回两个日期或日期时间之间的日数。Navicat 提供的自动完成代码功能可以帮助我们使用 DATEDIFF() 函数。当你开始键入单词时,会出现一个弹出列表,其中包含有关模式、表或视图、列以及存储过程和函数的建议。以下是建议列表中的 DATEDIFF() 函数:

选择一个函数后,它会以可通过 TAB 键聚焦、颜色编码、输入参数的格式插入到代码中的光标位置,以便快速输入:

关于时间
对于较短的时间范围,可以使用 TIMEDIFF() 代替 DATEDIFF()。它返回以秒为单位的时差。对于更长的时间间隔,你可以将返回值除以 60 转换成分钟,再将返回值除以 60 转换成小时。
按日分组结果
下一步是按日分组结果。这可以通过 GROUP BY 子句完成。它使我们可以将诸如 COUNT() 和 AVG() 之类的聚合函数应用于每个 rental_date 的租用日数。以下是加入了 GROUP BY 子句的查询:

你会注意到,我将 avg_days_rented 舍入到小数点后一位。否则,我们将获得 4 个精度点,这对于我们的目的而言可能有点多!
总结
幸亏 MySQL 有许多日期或时间函数,基于开始和结束日期列来计算每日平均日期或时间间隔比以前容易得多。此外,Navicat 功能丰富的 SQL 编辑器为几乎所有数据库实体(包括模式、表、列以及函数和存储过程)提供自动完成代码功能,这能进一步简化查询编写。如果你对 Navicat Premium 感兴趣,可以免费试用 14 天!
往期回顾
边栏推荐
猜你喜欢

pnpm简介

MySQL【运算符】

企业数字化建设,自研还是采购?

百度paddleocr检测训练

公共Jar包的版本管理

使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备

Apache DolphinScheduler新一代分布式工作流任务调度平台实战-上
![[Fun BLDC series with zero basics] Taking GD32F30x as an example, the timer related functions are explained in detail](/img/1d/700c79a766f115d5d0f3bd8263d67c.png)
[Fun BLDC series with zero basics] Taking GD32F30x as an example, the timer related functions are explained in detail

仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)

【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
随机推荐
C#中Config文件中,密码的 特殊符号的书写方法。
嘉为鲸翼·多云管理平台荣获信通院可信云技术服务最佳实践
【无标题】
函数式接口&Lambda表达式——简单应用笔记
MySQL之COUNT性能到底如何?
Test automation selenium (a)
MySQL【运算符】
代码随想录笔记_哈希_202 快乐数
MySQL中使用IN 不会走索引分析以及解决办法
echart图表清空上一次数据
Scala
[Fun BLDC series with zero basics] Taking GD32F30x as an example, the timer related functions are explained in detail
HCIP - MPLS VPN experiment
Unity性能分析 Unity Profile性能分析工具
Concise Notes on Integrals - Types of Curve Integrals of the Second Kind
Only after such a stage of development can digital retail have a new evolution
pnpm简介
The difference between DDR, GDDR, QDR
利用R语言读取csv文件入一个数据框,然后查看各列的属性。
日志导致线程Block的这些坑,你不得不防