当前位置:网站首页>MySQL INTERVAL 关键字指南
MySQL INTERVAL 关键字指南
2022-08-01 15:57:00 【allway2】
在本教程中,我们将了解 MySQL INTERVAL 关键字及其值以对日期和时间算术执行操作。那么,让我们开始吧!
MySQL INTERVAL 简介
在 MySQL 中,INTERVAL 关键字用于添加或减去日期和时间值。例如,如果您想在当天添加五天并显示新日期,您可以使用 INTERVAL 关键字。
MySQL 为我们提供了一堆区间值。我们将在下面看到这些间隔值的完整列表。
但首先,让我们看看如何使用 interval 关键字。
INTERVAL exp UNIT;
这里,exp 表示表达式,例如 1、2、100、200 或其他取决于单位的表达式。单位是计算日期和时间的度量单位,如日、时、分、秒等。
在上面的语法中,INTERVAL 关键字和单位名称都是不区分大小写的。
我们可以添加或减去间隔值,如下所示 -
date + INTERVAL exp UNIT
date - INTERVAL exp UNIT请注意,您指定的日期必须采用有效的日期时间格式。
间隔值也可以与其他日期时间函数一起使用,例如 ADDDATE()、DATE_ADD()、DATE_SUB()、TIMESTAMPDIFF() 等。
表达式和单位的格式
下表显示了 exp 和 UNIT 的标准格式 -
| Unit | exp |
|---|---|
| DAY | DAYS |
| DAY_HOUR | DAYS HOURS |
| DAY_MICROSECOND | DAYS HOURS:MINUTES:SECONDS.MICROSECONDS |
| DAY_MINUTE | DAYS HOURS:MINUTES |
| DAY_SECOND | DAYS HOURS:MINUTES:SECONDS |
| HOUR | HOURS |
| HOUR_MICROSECOND | HOURS:MINUTES:SECONDS.MICROSECONDS |
| HOUR_MINUTE | HOURS:MINUTES |
| HOUR_SECOND | HOURS:MINUTES:SECONDS |
| MICROSECOND | MICROSECONDS |
| MINUTE | MINUTES |
| MINUTE_MICROSECOND | MINUTES:SECONDS.MICROSECONDS |
| MINUTE_SECOND | MINUTES:SECONDS |
| MONTH | MONTHS |
| QUARTER | QUARTERS |
| SECOND | SECONDS |
| SECOND_MICROSECOND | ‘SECONDS.MICROSECONDS’ |
| WEEK | WEEKS |
| YEAR | YEARS |
| YEAR_MONTH | ‘YEARS-MONTHS’ |
MySQL INTERVAL 示例
在第一个示例中,我们将为当前日期添加 1 天。当前日期是 2022-07-05 (YYYY-MM-DD),所以输出必须是 2022-07-06。
SELECT CURDATE() + INTERVAL 1 DAY;

添加天间隔
您还可以从日期中减去间隔。此外,您也可以指定自己的日期时间,但必须采用有效的日期时间格式。检查下面的示例 -
SELECT '2022-01-01' - INTERVAL 1 DAY;在这里,我们指定了一年的第一天,并尝试从中减去 1 天。输出应包含上一年。让我们看看输出。
减去天间隔
如您所见,我们得到了预期的输出。
让我们看看如何将间隔值与其他日期时间函数一起使用。
SELECT DATE_ADD('2022-01-01',INTERVAL 10 DAY);
SELECT DATE_SUB('2022-01-01',INTERVAL 10 DAY);在这里,我们使用了 DATE_ADD() 和 DATE_SUB() 函数来添加和减去指定日期的间隔值。
让我们看看输出。
日期添加和日期子功能
正如你在这里看到的,我们得到了正确的输出。
MySQL INTERVAL 实例
现在我们将看到一些使用区间值的实际示例。
我们将创建一个表格,我们将在其中存储会员的数据以及他们的注册日期和会员资格的到期日期。
我们将使用 DATE_ADD() 函数计算到期日期。
CREATE TABLE members(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
reg_date DATE DEFAULT(CURDATE()),
exp_date DATE DEFAULT(DATE_ADD(reg_date,INTERVAL 1 YEAR))
);这里,在注册时,MySQL 会将 reg_date 列的值设置为当前日期。根据注册日期,将计算到期日期。让我们尝试插入值并检查到期日期列是否获得正确的值。为此,我们将明确插入一些注册日期。
INSERT INTO members(name) VALUES ("Bob"),("Vilas"),("John");
INSERT INTO members(reg_date,name) VALUES ('2022-08-01',"Adam"),('2022-08-04',"Cetty");让我们检查一下输出。
SELECT * FROM members;

区间实例
如您所见,到期日期设置为注册日期后 1 年。
概括
在本教程中,我们了解了 interval 关键字及其值。注意,区间的范围很广。您可以将其用于不同的目的,例如查找将在未来 10 天内完成课程的学生、会员将在下个月到期的成员列表等。练习!
边栏推荐
猜你喜欢

MySQL中字符串比较大小(日期字符串比较问题)

百图生科卓越开发者计划全面升级暨《计算免疫问题白皮书》发布

May 20, 2022 The most complete fish game navigation

VIM实用指南(0)基本概念与初次体验

js邯郸市地图网页源码下载

Break the limit of file locks and use storage power to help enterprises grow new momentum

ESP8266-Arduino编程实例-74HC595位移寄存驱动

gconf/dconf实战编程(2)利用gconf库读写配置实战以及诸多配套工具演示

2.8K 120Hz touch dual-screen blessing Lingyao X dual-screen Pro 2022 makes the office without fear of imagination

信息录入率百分百上海强化施工现场建筑工人实名制管理
随机推荐
CSDN配置功能总结
Stock Strategy 02 | Technology Timing + Industry Factors + Market Value Rotation
8年软件测试工程师感悟 —— 写给还在迷茫中的朋友
数据抽取过滤的时候,数据库字段update_at类型是timestamp,抽取T-1日数据这个变量条
js判断是pc端还是移动端(包括ipad)
ffmpeg视频剪辑中报错Could not write header for output file #0 (incorrect codec parameters ?): ……
产品力无提升的雷克萨斯新款ES ,为何敢于涨价?
兆骑科创平台招才引智,海内外高层次人才引进平台
RepOptimizer学习笔记
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
gconf/dconf实战编程(2)利用gconf库读写配置实战以及诸多配套工具演示
MySQL查询上的问题
会议OA项目(六)--- (待开会议、历史会议、所有会议)
gconf/dconf编程实战(1)gconf和dconf介绍
pwnhome 个人博客快速索引(持续更新)
七夕专属博文-使用QGraphics画“红心“或“黑心“(含数学模型讲解)
Shell basic function writing
请问下怎么取数据库中上一个小时的数据到odps进行实时节点的同步呢
Grid布局 容器属性(一) `grid-template`系列属性
到底什么才是真正的商业智能(BI)