首页 > 数据库 > MySQL > 正文

mysql中date_add与date_sub函数使用详解

2024-07-24 12:37:28
字体:
来源:转载
供稿:网友

在mysql中date_add与date_sub函数分别date_add是对日期加减操作而date_sub是从日期减去指定的时间间隔了,下面我来介绍几个实例大家一起看看

mysql 中 DATE_ADD(date,INTERVAL expr type) 和 DATE_SUB(date,INTERVAL expr type)

这些函数执行日期运算,date 是一个 DATETIME 或DATE值,用来指定起始时间,expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值,Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头,type 为关键词,它指示了表达式被解释的方式.

关键词INTERVA及 type 分类符均不区分大小写.

mysql中内置函数date_add和date_sub能对指定的时间进行增加或减少一个指定的时间间隔,语法如下:

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type)

其中date是指定的日期,INTERVAL为关键词,expr是具体的时间间隔,type是时间单位。注意:type可以复合型的,比如YEAR_MONTH,如果type不是复合型的,DATE_ADD和DATE_SUB其实可以通用,因为expr可以为一个负数.

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,同时可以使用负数。复合型的用法如下.

  1. mysql> select date_add('2013-01-18', interval '1 2' YEAR_MONTH); 
  2. +-----------------------------------------------------+ 
  3. | date_add('2013-01-18', interval '1 2' YEAR_MONTH) | 
  4. +-----------------------------------------------------+ 
  5. | 2014-03-18                                          | 
  6. +-----------------------------------------------------+ 
  7. mysql> select date_add('2013-01-18', interval '1-2' YEAR_MONTH); 
  8. +----------------------------------------------------+ 
  9. | date_add('2013-01-18', interval '1-2' YEAR_MONTH) | 
  10. +----------------------------------------------------+ 
  11. | 2014-03-18                                         | 
  12. +----------------------------------------------------+ 
  13. mysql> select date_add('2013-01-18', interval '1,2' YEAR_MONTH); 
  14. +---------------------------------------------------+ 
  15. | date_add('2013-01-18', interval '1,2' YEAR_MONTH) | 
  16. +---------------------------------------------------+ 
  17. | 2014-03-18                                        | 
  18. +---------------------------------------------------+ 
  19. mysql> select date_add('2013-01-18', interval 1 YEAR_MONTH); 
  20. +-----------------------------------------------+ 
  21. | date_add('2013-01-18', interval 1 YEAR_MONTH) | 
  22. +-----------------------------------------------+ 
  23. | 2013-02-18                                    | 
  24. +-----------------------------------------------+ 
  25. mysql> select date_add('2013-01-18', interval -1 YEAR_MONTH); 
  26. +------------------------------------------------+ 
  27. | date_add('2013-01-18', interval -1 YEAR_MONTH) | 
  28. +------------------------------------------------+ 
  29. | 2012-12-18                                     |   --Vevb.com 
  30. +------------------------------------------------+

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表