DATE_SUB(d,INTERVAL expr type)函数返回起始日期d减去一个时间段后的日期。mysql
expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值。sql
expr是一个字符串。对于负值的时间间隔,它能够用一个负号“-”开头。函数
expr表达式与后面的间隔类型type对应。字符串
MySQL中的日期间隔类型以下表所示:table
类型(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之间用任意符号隔开 |
使用DATE_SUB()函数执行日期减操做。SQL语句以下:class
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;
执行结果以下:im
从上图中代码执行的结果能够看出:img
在MySQL中,还能够使用负数来指定时间。tab
使用DATE_SUB()函数执行日期减操做。SQL语句以下:di
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(d,INTERVAL expr type)函数在指定修改的时间段时,也能够指定负值,负值表明相减,减去一个负值,获得的是对日期的相加,即返回之后的日期和时间。
DATE_SUB(d,INTERVAL expr type)函数中的type必须在上表中。并且,type必须是上表中的某一项,不能是其中几项的组合。所以,使用该函数时,必定要注意type的选择。
DATE_SUB(d,INTERVAL expr type)函数和SUBDATE(d,INTERVAL expr type)函数的做用相同。