码迷,mamicode.com
首页 > 数据库 > 详细

mysql中date_add()函数的使用?

时间:2018-06-26 14:26:47      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:日期   inter   exp   sele   col   2018年   一个   bsp   strong   

需求描述:

  在使用mysql的过程中,需要对日期进行计算,比如对某个日期加上几天,几个小时等操作,

  在此记录下,date_add()函数的使用.

操作过程:

date_add()函数语法:

  DATE_ADD(date,INTERVAL expr unit)

备注:date_add()和adddate()是同义词.

参数说明:

  date:起始日期或者起始时间

  expr:指定的是一个间隔值,在起始时间中增加或者减少,注意:expr是一个字符串.对于负值间隔,可以以"-"开头

  unit:表示的是一个单位,比如,加上的是1天还是一个小时.

1.对某个日期加上n天的操作

mysql> select date_add(2018-06-26,INTERVAL 5 day);
+-----------------------------------------+
| date_add(2018-06-26,INTERVAL 5 day) |
+-----------------------------------------+
| 2018-07-01                              |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql> select date_add(2018-06-26,INTERVAL -5 day);
+------------------------------------------+
| date_add(2018-06-26,INTERVAL -5 day) |
+------------------------------------------+
| 2018-06-21                               |
+------------------------------------------+
1 row in set (0.01 sec)

备注:expr是字符串,如果加上的正值的天数,直接‘5‘即可,如果是减可以用date_sub函数或者expr为负值‘-5‘.

2.对某个日期加上n小时,n分钟,n秒的操作

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1 hour);  #对于日期加上1小时
+-------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1 hour) |
+-------------------------------------------------+
| 2018-06-27 00:59:59                             |
+-------------------------------------------------+
1 row in set (0.00 sec)

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1 minute);  #对于日期加上1分钟
+---------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1 minute) |
+---------------------------------------------------+
| 2018-06-27 00:00:59                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1 second);  #对日期加上1秒钟
+---------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1 second) |
+---------------------------------------------------+
| 2018-06-27 00:00:00                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

3.对于某个日期加上n分钟n秒

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1:1 MINUTE_SECOND);
+--------------------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1:1 MINUTE_SECOND) |
+--------------------------------------------------------------+
| 2018-06-27 00:01:00                                          |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

备注:一次性加上1分钟,一秒.

4.对于某个日期加上n小时n分钟n秒

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1:1:1 HOUR_SECOND);
+--------------------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1:1:1 HOUR_SECOND) |
+--------------------------------------------------------------+
| 2018-06-27 01:01:00                                          |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

备注:单位HOUR_SECOND就是从小时到秒.expr:HOURS:MINUTES:SECONDS

5.对某个日期加上n小时n分钟

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 1:1 HOUR_MINUTE);
+------------------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 1:1 HOUR_MINUTE) |
+------------------------------------------------------------+
| 2018-06-27 01:00:59                                        |
+------------------------------------------------------------+
1 row in set (0.00 sec)

备注:加上1小时1分钟

6.对某个日期加上几天几小时几分钟几秒钟

mysql> select date_add(2018-06-26 23:59:59,INTERVAL 2 2:1:1 DAY_SECOND);
+---------------------------------------------------------------+
| date_add(2018-06-26 23:59:59,INTERVAL 2 2:1:1 DAY_SECOND) |
+---------------------------------------------------------------+
| 2018-06-29 02:01:00                                           |
+---------------------------------------------------------------+
1 row in set (0.00 sec)

备注:在日期上加上2天2小时2分钟1秒钟

 

unit(单位)和expr(表达式)对照表:

技术分享图片

 

小结:

  对于某个日期的计算,无论加上多少,都可以根据这个表格进行调整.对于日期的减法,尽量用date_sub()函数来实现.

 

文档创建时间:2018年6月26日14:01:08

mysql中date_add()函数的使用?

标签:日期   inter   exp   sele   col   2018年   一个   bsp   strong   

原文地址:https://www.cnblogs.com/chuanzhang053/p/9228798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!