MySQL计算日期函数DATE_SUB(d,INTERVAL expr type)的用法

Posted 魏晓蕾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL计算日期函数DATE_SUB(d,INTERVAL expr type)的用法相关的知识,希望对你有一定的参考价值。

语法

  • DATE_SUB(d,INTERVAL expr type)函数返回起始日期d减去一个时间段后的日期。
  • expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值。对于负值的时间间隔,它可以用一个负号“-”开头。
  • expr表达式与后面的间隔类型type对应。
  • mysql中的日期间隔类型如下表所示:
类型(type值)含义expr表达式的形式
YEARYY
MONTHMM
DAYDD
HOURhh
MINUTEmm
SECONDss
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
2014-10-11 11:59:59
mysql>SELECT DATE_SUB('2014-10-11 23:59:59', INTERVAL '1 1' YEAR_MONTH) AS col2
2013-09-11 23:59:59
  • 从上图中代码执行的结果可以看出:
  • 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
2014-10-11 11:59:59
mysql>SELECT DATE_SUB('2014-10-11', INTERVAL '-1 -1' YEAR_MONTH) AS col2
2015-11-11
  • 从上图中代码执行的结果可以看出:
  • 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计算日期的函数

mysql中时间计算函数SQL DATE_SUB()用法

MySQL中判断日期间隔的方法

MySQL DATE_SUB() 函数

MySql date_sub()函数

在mysql中得到当前日期是当月第几周