MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL INTERVAL

MySQL interval是一个运算符,它基于二进制搜索算法来搜索项目并返回从0到N的值。主要是 用于计算日期和时间的值
我们可以使用以下 语法创建间隔值:
INTERVAL expr unit
在以上语法中, expr 用于确定间隔值,而 unit 表示间隔单位。 例如,如果我们要创建两天的间隔,则可以使用以下表达式:
INTERVAL 2 DAY
请注意, INTERVAL UNIT 不区分大小写。因此,下面的表达式等同于前面的表达式:
interval 2 day
我们可以将 日期和时间的间隔值用作以下语句:
date + INTERVAL expr unit
date-INTERVAL expr unit
间隔值也可以在各种时间函数中使用,例如DATE_SUB,DATE_ADD,TIMESTAMPDIFF,TIMESTAMPADD等。
MySQL 描述了 与表达式关联的单位的标准格式,如下表所示:
Unit Expr
DAY DAYS
DAY_HOUR 'DAYS HOURS'
DAY_MICROSECOND 'DAYS HOURS: MINUTES: SECONDS.MICROSECONDS'
DAY_MINUTE 'DAYS HOURS: MINUTES'
DAY_SECOND 'DAYS HOURS: MINUTES: SECCONDS'
HOUR HOURS
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS: MINUTES: SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
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间隔示例

让我们通过各种示例了解如何在MySQL中使用间隔表达式。以下查询向2020年2月1日添加了五天,并返回2020年2月6日:
mysql> SELECT '2020-02-01' + INTERVAL 5 DAY AS DATE;
它将返回以下输出:
MySQL Interval
如果我们指定 DATE或DATETIME 作为表达式右侧的间隔值,expr的负值可以是用过的。请参见以下示例:
mysql> SELECT '2020-02-01' + INTERVAL-5 DAY AS DATE;
我们将得到如下输出:
MySQL Interval
接下来,我们将请参见使用 DATE_SUB DATE_ADD 函数从日期值中添加或减去日期/月份/时间。请参阅以下语句:
mysql> SELECT DATE_ADD('2020-02-01', INTERVAL 3 MONTH) AS MONTH_LATER, 
DATE_SUB('2020-02-01',INTERVAL 3 MONTH) AS MONTH_BEFORE;
它将返回以下输出:
MySQL Interval
现在,我们将使用以下查询中的 TIMESTAMPADD(单位,间隔,表达式)函数,它将使时间戳记值增加45分钟:
mysql> SELECT TIMESTAMPADD(MINUTE, 45, '2020-02-01') MINUTES_LATER;
我们将看到以下输出:
MySQL Interval
让我们看看用法MySQL表中的时间间隔。首先,我们将使用以下语句创建一个名为 service_memberships 的新表:
CREATE TABLE service_memberships (
  id int AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(55) NOT null,
  email VARCHAR(55) NOT null,
  plan VARCHAR(45) NOT null,
  validity_date DATE NOT null
);
接下来,我们将使用 INSERT 语句将记录填充到表中,如下所示:
INSERT INTO service_memberships(name, email, plan, validity_date)
VALUES('Stephen', 'stephen@lidihuo.com','Gold','2020-06-13'),
      ('Jenifer', 'jenifer@lidihuo.com','Platinum','2020-06-10'),
      ('david', 'david@lidihuo.com','Silver','2020-06-15'),
      ('julia', 'julia@lidihuo.com','Gold','2020-06-20'),
      ('Alexandar','alexandar@lidihuo.com','Silver','2020-06-08');
接下来,执行 SELECT 语句来验证记录:
MySQL Interval
假设我们要 查找其成员资格在7天内过期的成员 >从2020-06-05日期开始。我们可以使用以下查询找到这些详细信息:
SELECT name, email, plan, validity_date,
DATEDIFF(validity_date, '2020-06-05') AS remaining_days
FROM service_memberships
WHERE '2020-06-05' BETWEEN DATE_SUB(validity_date, INTERVAL 7 DAY) AND validity_date;
在此语句中,我们使用了DATE_SUB函数,该函数将间隔天数指定的剩余天数减去7天。执行该语句后,我们将获得以下输出:
MySQL Interval
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4