mysql interval用法_sql中interval用法总结

interval作为函数时

当interval作为一个函数时,它被当做一个比较函数,即interval(),如interval(4,0,1,2,3,4,5,6),则在函数中,第一个数4作为被比较数,后面的0,1,2,3,4,5,6为比较数,然后将后面的数字依次与4进行比较,返回小于等于4的个数,所以上述结果为5,注意,只有将4后面的数字从小到大进行排列,interval函数才能正常使用,若排序混乱,可以使用,但会影响最终结果。

interval作为关键字时

当interval作为一个关键字时,表示为时间间隔,常用在date_add()、date_sub()函数中,常用于时间的加减法。

时间的加法

使用date_add函数时

mysql> select date_add('2020-07-20', interval +1 day);

+-----------------------------------------+

| date_add('2020-07-20', interval +1 day) |

+-----------------------------------------+

| 2020-07-21 |

+-----------------------------------------+

1 row in set (0.01 sec)

mysql> select date_add('2020-07-20', interval +1 hour);

+------------------------------------------+

| date_add('2020-07-20', interval +1 hour) |

+------------------------------------------+

| 2020-07-20 01:00:00 |

+------------------------------------------+

1 row in set (0.00 sec)

mysql> select date_add('2020-07-20', interval +1 minute);

+--------------------------------------------+

| date_add('2020-07-20', interval +1 minute) |

+--------------------------------------------+

| 2020-07-20 00:01:00 |

+--------------------------------------------+

1 row in set (0.00 sec)

使用DATE关键字时,需要确定时间的粒度大小,再进行具体时刻的选取,可供选择的时间粒度如下

MICROSECOND

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

SECOND_MICROSECOND

MINUTE_MICROSECOND

MINUTE_SECOND

HOUR_MICROSECOND

HOUR_SECOND

HOUR_MINUTE

DAY_MICROSECOND

DAY_SECOND

DAY_MINUTE

DAY_HOUR

YEAR_MONTH

使用如下

mysql> select DATE '2020-07-20' + interval '1 31' hour_second;

+-------------------------------------------------+

| DATE '2020-07-20' + interval '1 31' hour_second |

+-------------------------------------------------+

| 2020-07-20 00:01:31 |

+-------------------------------------------------+

1 row in set (0.00 sec)

mysql> select DATE '2020-07-20' + interval '2' microsecond;

+----------------------------------------------+

| DATE '2020-07-20' + interval '2' microsecond |

+----------------------------------------------+

| 2020-07-20 00:00:00.000002 |

+----------------------------------------------+

1 row in set (0.00 sec)

时间的减法

与时间的加法使用方式一致,将 + 号换成 - 号就可以

mysql> select date_add('2020-07-20', interval -1 day);

+-----------------------------------------+

| date_add('2020-07-20', interval -1 day) |

+-----------------------------------------+

| 2020-07-19 |

+-----------------------------------------+

1 row in set (0.00 sec)

mysql> select date_add('2020-07-20', interval -1 hour);

+------------------------------------------+

| date_add('2020-07-20', interval -1 hour) |

+------------------------------------------+

| 2020-07-19 23:00:00 |

+------------------------------------------+

1 row in set (0.00 sec)

mysql> select date_add('2020-07-20', interval -1 minute);

+--------------------------------------------+

| date_add('2020-07-20', interval -1 minute) |

+--------------------------------------------+

| 2020-07-19 23:59:00 |

+--------------------------------------------+

1 row in set (0.00 sec)

-----------------

mysql> select DATE '2020-07-20' - interval '1 31' hour_second;

+-------------------------------------------------+

| DATE '2020-07-20' - interval '1 31' hour_second |

+-------------------------------------------------+

| 2020-07-19 23:58:29 |

+-------------------------------------------------+

1 row in set (0.00 sec)

mysql> select DATE '2020-07-20' - interval '2' microsecond;

+----------------------------------------------+

| DATE '2020-07-20' - interval '2' microsecond |

+----------------------------------------------+

| 2020-07-19 23:59:59.999998 |

+----------------------------------------------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值