一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解
目录
前言
一、INTERVAL
1.基础使用
2.在函数中使用
二、INTERVAL()函数
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
前言
时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。
在本人博客数据库MySQL已有三篇详细解释了大部分关于处理时间数据的函数以及实例运用,如果对这一方面有需求的可以看这两篇:
一文速学-玩转MySQL获取时间、格式转换各类操作方法详解
一文速学-玩转MySQL时间选取各类函数操作详解+实例代码
第一篇具体讲述了所有获取SQL本地时间的函数,以及其他数据类型与时间数据类型相互转换。
第二批具体讲述了所有MySQL时间数据选取具体指定时间的函数。以上两篇文章都有具体的代码演示。希望能够帮助到正在看此博文的各位,如果还有什么问题解决不了尽请在评论区提出,博主会一一作答。下面开始正文。
一、INTERVAL
1.基础使用
INTERVAL关键字一般使用格式为:
interval [+/-]<数值> <时间单位>
例如:
interval 3 day
代表意义为3天的时间变量,可由时间变量进行相加减。这里展示SQL表为:
例如我们想要将create_time推迟三天:
select (create_time-INTERVAL 3 day) as time from value_test
也可以为-3天:
select (create_time+INTERVAL -3 day) as time from value_test
效果是一样的。
时间单位表为:
时间单位 | 描述 |
year | 年 |
quarter | 季度 |
month | 月 |
week | 周 |
day | 天 |
hour | 小时 |
minute | 分钟 |
second | 秒 |
microsecond | 微秒 |
second_microsecond |
秒_微秒 |
minute_microsecond | 分_微秒 |
minute_second | 分_秒 |
hour_microsecond | 时_微秒 |
hour_second | 时_秒 |
hour_minute | 时_分 |
day_microsecond | 天_微秒 |
day_second | 天_秒 |
day_minute | 天_分钟 |
day_hour | 天_小时 |
year_month | 年_月 |
如果我们想要在原基础上加上1小时10分钟10秒:
select (create_time+INTERVAL '1:10:10' hour_second) as time from value_test
这里要注意一下指定的时间单位向下兼容性,当我们选择的是hour_second小时到秒时,输入的数值仅为两个数值,例如:
select (create_time+INTERVAL '10:10' hour_second) as time from value_test
会自动识别为10分10秒:
其他的连续时间段表示单位也都一样,例如:
select (create_time+INTERVAL '10:10:10' day_second) as time from value_test
2.在函数中使用
interval一般使用场景都在场景筛选中使用,比如where的条件判断,或者是筛选、去一段指定的时间片段。如取近七日的时间段的数据:
and time between cast(date_sub(date_format(curdate(),'%Y%m%d')
, interval 7 day) as DECIMAL)
and cast(date_sub(date_format(curdate(),'%Y%m%d') , interval 1 day)
as DECIMAL)
也经常在date_add和date_sub这种时间运算函数中表示时间变量使用,add和sub都可以通过修改正负号来替换功能。
二、INTERVAL()函数
在MySQL输入interval()函数就会显示相应的语法格式:
INTERVAL(N,N1,N2,N3,...)
INTERVAL()函数为分区函数,其中,N是要判断的数值,N1,N2,N3,...是分段的间隔。
这个函数的返回值是段的位置:
- 如果N<N1,则返回0,
- 如果N1<=N<N2,则返回1,
- 如果N2<=N<N3,则返回2。
- 区间是左闭右开的。
这里我们用time这一列开展示效果:
我们想要把time列的时间归类为20220601-20220610为一个区域,20220611-20220620为一个区域,20220621-20220630为一个区域,每隔10天为一个分区。
select INTERVAL(time,20220611,20220621,20220631) as time from value_test
分完区之后一般进行统计,就可以得到对应区间的个数了:
select INTERVAL(time,20220611,20220621,20220631) as times ,count(*) as count
from value_test
GROUP BY times
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。
一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解相关推荐
- mysql中insert语句的五种用法
文章目录 前言 一.values参数后单行插入 二.values参数后多行插入 三.搭配select插入数据 四.复制旧表的信息到新表 五.搭配set插入数据 总结 前言 insert语句是标准sql ...
- MySQL中replace主键_Mysql中replace与replace into的用法讲解
Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...
- Pyecharts一文速学-绘制桑基图详解+Python代码
目录 前言 一.桑基图 二.Pyecharts绘制 1.数据处理 2.桑基图参数 1.class Sankey() 2.class SankeyLevelsOpts() 三.add()方法参数 1.s ...
- 一文速学数模-时序预测模型(四)二次指数平滑法和三次指数平滑法详解+Python代码实现
目录 前言 二次指数平滑法(Holt's linear trend method) 1.定义 2.公式 二次指数平滑值: 二次指数平滑数学模型: 3.案例实现 三次指数平滑法(Holt-Winters ...
- MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
原文地址:https://www.cnblogs.com/digdeep/p/4818660.html 移植sql server 的存储过程到mysql中,遇到了sql server中的: IF @@ ...
- mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数
<Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user ...
- mysql 中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- mysql中模糊查询的四种用法
转载自 https://www.cnblogs.com/songfayuan/articles/7290158.html 下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可 ...
- mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客
不常用:MySQL中的LOCATE和POSITION函数 LOCATE(substr,str) POSITION(substr IN str) 返回子串 substr 在字符串 str 中第一次出现的 ...
最新文章
- 收藏这10个办公神器,让你的职场办公更高效!
- 计算机组成原理—— 指令系统
- linux删除之前的文件在哪里,Linux下,如何将最后修改时间在某个时间之前的文件删除去?...
- 移动Sql Server数据库的脚本
- 电脑同时安装python2和3_一台电脑上同时安装python2和python3
- modbus-crc16——c语言
- javascript中的undefined 和 not defined
- java中有没有计时器_简单说一下java中计时器,实际需要,没有详解
- if a != None:
- select 居右对齐
- pb 执行insert 后return是否会自动提交_一条MySQL更新语句是怎么执行的?
- Map对象,Set对象使用(1)
- 【vivado使用】第2篇:超实用的vivado使用教程
- FTP文件上传Java代码实操
- QCC3005 芯片开发过程中碰到的一些问题
- colmak键盘_萌神进化 IKBC 新POKER2机械键盘体验
- mysql实验四数据库查询和视图_数据库实验四答案
- WIN11 TortoiseSVN 无论什么操作,都报同一个错误:请求的操作需要提升
- 今天就给大家介绍一个抢购茅台的小技巧,不需要安装Python,不需要配置环境,就和你在电脑上安装使用QQ等软件一样
- 「CH2401」送礼物 解题报告
热门文章
- 无法将数值CLSID写入 \Software\Classes\PROTOCOLS\Handler\ms-help。
- 【echarts】echarts根据奇偶设置柱形图颜色切换
- 【深度学习-吴恩达】L1-3 浅层神经网络 作业
- Mac电脑快捷键盘点:QuickTime Player 键盘快捷键和手势大全
- 小程序根据国外经纬度显示地图
- 普中科技单片机AD电压数模转换。STC89C52和XPT2046 芯片
- ZOOMIT的使用方法
- CG CTF RE Py交易
- Cloud Chou's Tech Blog编译相关
- 英特尔最新超级计算机,全球超级计算机500强三分之二使用英特尔的处理器