MySQL中DATE_ADD函数⽤法
业务需要,计算时间差,那么久⽤到了DATE_ADD函数了:
类似于: DATE_SUB(date,INTERVAL expr type)
这些函数执⾏⽇期运算。 date 是⼀个 DATETIME 或DATE值,⽤来指定起始时间。 expr 是⼀个表达式,⽤来指定从起始⽇期添加或减去的时间间隔值。 Expr是⼀个字符串;对于负值的时间间隔,它可以以⼀个 ‘-’开头。 type 为关键词,它指⽰了表达式被解释的⽅式。
关键词INTERVA及 type 分类符均不区分⼤⼩写。
从它的特性得知date是指定的⽇期,INTERVAL为关键词,expr是具体的时间间隔,type是时间单位。注意:type可以复合型的,⽐如YEAR_MONTH。如果type不是复合型的,DATE_ADD和DATE_SUB其实可以通⽤,因为expr可以为⼀个负数。可⽤的type如下表:
MICROSECOND间隔单位:毫秒
SECOND间隔单位:秒
MINUTE间隔单位:分钟
HOUR间隔单位:⼩时
DAY间隔单位:天
WEEK间隔单位:星期
MONTH间隔单位:⽉
QUARTER间隔单位:季度
YEAR间隔单位:年
SECOND_MICROSECOND 复合型,间隔单位:秒、毫秒,expr可以⽤两个值来分别指定秒和毫秒
MINUTE_MICROSECOND复合型,间隔单位:分、毫秒
MINUTE_SECOND复合型,间隔单位:分、秒
HOUR_MICROSECOND复合型,间隔单位:⼩时、毫秒
HOUR_SECOND复合型,间隔单位:⼩时、秒
HOUR_MINUTE复合型,间隔单位:⼩时分
DAY_MICROSECOND复合型,间隔单位:天、毫秒
DAY_SECOND复合型,间隔单位:天、秒
DAY_MINUTE复合型,间隔单位:天、分
DAY_HOUR复合型,间隔单位:天、⼩时
YEAR_MONTH复合型,间隔单位:年、⽉
对应复合型的type,需要使⽤引号对两个参数进⾏引⽤起来,中间⽤任何⾮数字字符作为间隔即可,并且不能使⽤负数。但是时间间隔只指定了⼀个值,那么也能正常⼯作,但是对应XXX_YYY使⽤的单位为YYY,也就相当于单⼀单位的type,同时可以使⽤负数。复合型的⽤法如下:
2.测试脚本:
mysql> select date_add('2013-01-18', interval '1,2' YEAR_MONTH);
+---------------------------------------------------+
| date_add('2013-01-18', interval '1,2' YEAR_MONTH) |
+---------------------------------------------------+
| 2014-03-18 |
+---------------------------------------------------+
mysql> select date_add('2013-01-18', interval 1 YEAR_MONTH);
+-----------------------------------------------+
| date_add('2013-01-18', interval 1 YEAR_MONTH) |
+-----------------------------------------------+
| 2013-02-18 |
+-----------------------------------------------+
mysql> select date_add('2013-01-18', interval -1 YEAR_MONTH);
+------------------------------------------------+
mysql下载add produce| date_add('2013-01-18', interval -1 YEAR_MONTH) |
+------------------------------------------------+
| 2012-12-18 |
+------------------------------------------------+
3.此次报表中需求⽤到的⽤法:
有图得知,就是需要在表中记载的创建时间上加上超时时间,再减去当前系统时间,如果⼤于0,说明超时,如果⼩于0,说明没有超时。测试脚本例⼦:
总结:其实就是按照你的type去增减值的 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论