MySQL计算日期的函数DATE_SUB(d,INTERVAL expr type)
MySQL计算日期的函数DATE_SUB(d,INTERVAL expr type)
DATE_SUB(d,INTERVAL expr type)函数返回起始日期d减去一个时间段后的日期。
expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值。
expr是一个字符串。对于负值的时间间隔,它可以用一个负号“-”开头。
expr表达式与后面的间隔类型type对应。
MySQL中的日期间隔类型如下表所示:
| 类型(type值) | 含义 | expr表达式的形式 |
|---|---|---|
| YEAR | 年 | YY |
| MONTH | 月 | MM |
| DAY | 日 | DD |
| HOUR | 时 | hh |
| MINUTE | 分 | mm |
| SECOND | 秒 | ss |
| YEAR_MONTH | 年和月 | YY和MM之间用任意符号隔开 |
| DAY_HOUR | 日和小时 | DD和hh之间用任意符号隔开 |
| DAY_MINUTE | 日和分钟 | DD和mm之间用任意符号隔开 |
| DAY_SECOND | 日和秒钟 | DD和ss之间用任意符号隔开 |
| HOUR_MINUTE | 时和分 | hh和mm之间用任意符号隔开 |
| HOUR_SECOND | 时和秒 | hh和ss之间用任意符号隔开 |
| MINUTE_SECOND | 分和秒 | mm和ss之间用任意符号隔开 |
实例1
使用DATE_SUB()函数执行日期减操作。SQL语句如下:
mysql>SELECT DATE_SUB('2014-10-11 12:00:00',INTERVAL 1 SECOND) AS col1,
->DATE_SUB('2014-10-11 23:59:59',INTERVAL '1 1' YEAR_MONTH) AS col2;
执行结果如下:

从上图中代码执行的结果可以看出:
- DATE_SUB('2014-10-11 12:00:00',INTERVAL 1 SECOND)函数将时间减少1秒后,返回的结果为“2014-10-11 11:59:59”。
- DATE_SUB('2014-10-11 23:59:59',INTERVAL '1 1' YEAR_MONTH)函数中,时间间隔使用的是YEAR_MONTH;expr表达式中的年和月之间用空格隔开,因此该函数返回的结果是d日期中一年零一个月以前的日期和时间2013-09-11 23:59:59。
实例2
在MySQL中,还可以使用负数来指定时间。
使用DATE_SUB()函数执行日期减操作。SQL语句如下:
mysql>SELECT DATE_SUB('2014-10-11 11:59:59',INTERVAL -1 SECOND) AS col1,
->DATE_SUB('2014-10-11',INTERVAL '-1 -1' YEAR_MONTH) AS col2;
执行结果如下:

从上图中代码执行的结果可以看出:
- DATE_SUB('2014-10-11 11:59:59',INTERVAL -1 SECOND)函数将时间增加1秒后,返回的结果为“2014-10-11 12:00:00”。
- DATE_SUB('2014-10-11',INTERVAL '-1 -1' YEAR_MONTH)函数返回日期d中一年零一个月以后的日期2015-11-11。
因为是对负数进行的减操作,所以实际上进行的是日期的加操作。
提示
DATE_SUB(d,INTERVAL expr type)函数在指定修改的时间段时,也可以指定负值,负值代表相减,减去一个负值,得到的是对日期的相加,即返回以后的日期和时间。
DATE_SUB(d,INTERVAL expr type)函数中的type必须在上表中。而且,type必须是上表中的某一项,不能是其中几项的组合。因此,使用该函数时,一定要注意type的选择。
DATE_SUB(d,INTERVAL expr type)函数和SUBDATE(d,INTERVAL expr type)函数的作用相同。
MySQL计算日期的函数DATE_SUB(d,INTERVAL expr type)的更多相关文章
- mysql 中 DATE_ADD(date,INTERVAL expr type)
在Hiredmyway中: SELECT if(LENGTH(company_name) > 30, concat(SUBSTRING(company_nam ...
- MySQL常用日期时间函数
日期和时间函数: MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ③每个客户端 ...
- MySQL之日期时间函数
1.NOW() 用法:显示当前日期和时间 举例: mysql> select NOW(); +---------------------+ | NOW() | +-------------- ...
- mysql格式化日期的函数
转自:https://www.cnblogs.com/duhuo/p/5650876.html mysql格式化日期 mysql查询记录如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的 ...
- mysql 计算日期差
有两个途径可获得 1.利用TO_DAYS函数 select to_days(now()) - to_days('20140831') 2.利用DATEDIFF函数 select dat ...
- mysql 计算日期为当年第几季度
select T21620.日期 as F21634, QUARTER('98-04-01') as quarter #返回日期是一年的第几个季度 - ...
- mysql计算日期之间相差的天数
TO_DAYS(NOW()) - TO_DAYS(createTime) as dayFactor,
- MySql常用日期函数(转载)
/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date ...
- 按年、季度、月分组&&计算日期和时间的函数
Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FO ...
随机推荐
- C语言学习笔记--struct 和 union关键字
1.struct关键字 C 语言中的 struct 可以看作变量的集合struct中的每个数据成员都有独立的存储空间. 结构体与柔性数组 (1)柔性数组即数组大小待定的数组 (2)C 语言中可以由结构 ...
- 删除eclipse Maven 进程 导致eclipse的workspace 启动不了
异常描述: An internal error occurred during: "reload maven project". java.lang.NullPointerExce ...
- 在Action获取Scope对象
引言:在前面的Action操作中,关键就是Action中的exectue方法,但是此方法并没有request.session.application等对象作为参数,自然就不能利用这些对象来操作.下面我 ...
- Java探索之旅(17)——多线程(1)
1.多线程 1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被 ...
- 关于Android项目中,突然就R类找不到已存在的资源文件的解决方法
项目代码早上打开正常,下午开的时候突然提示R类找不到已存在的布局文件,于是试了各种方法,CLEAN啊,重启啊,均无效,然后去网上搜了下,遇到这个问题的人还不少. 看到其中有这么一条解决方法,删除导入的 ...
- 一款Regular expression在线检测工具
记录下我自己使用的一款正则表达式使用工具 https://regex101.com/ 输入正则表达式后,可以在下面的“TEST STRING”中来测试对应的字符串是否满足该正则表达式 个人觉得非常好用
- HBase HA + Hadoop HA 搭建
HBase 使用的是 1.2.9 的版本. Hadoop HA 的搭建见我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些问题 以下目录均为 HBase 解压后的目录. 1. 修改 co ...
- Mac安装vue
Mac安装vue 一.安装brew 打开终端运行以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...
- iOS常用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
1. 简单工厂模式 如何理解简单工厂,工厂方法, 抽象工厂三种设计模式? 简单工厂方法包含:父类拥有共同基础接口,具体子类实现子类特殊功能,工厂类根据参数区分创建不同子类实例.该场景对应的UML图如下 ...
- c#之 quartz的学习
目录: 一. Quartz的API 二.Trigger 的使用 三.使用 JobDataMap 来往Job中传值 四. Calendars 五.SimpleTrigger 六.CronTrigger ...