mysql中date_add()函數的使用?


需求描述:

  在使用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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM