MySQL經常使用函數系列之九:日期和時間函數 函數(4)

                     

本文將實例演示DATE_ADD函數用法。mysql

DATE_ADD(date,INTERVAL exprtype)函數:返回與所給日期date相差INTERVAL時間段的日期。其中INTERVAL是間隔類型關鍵字,expr是一個表達式,這個表達式對應後面的類型,type是間隔類型,MySQL提供了13種間隔類型,如表所示。sql

表達式類型函數

描述spa

格式code

HOURblog

小時ip

hhci

MINUTEget

table

mm

SECOND

ss

YEAR

YY

MONTH

MM

DAY

DD

YEAR_MONTH

年和月

YY-MM

DAY_HOUR

日和小時

DD

DAY_MINUTE

日和分鐘

DD

DAY_

SECOND

日和秒

HOUR_MINUTE

小時和分

hh:mm

HOUR_SECOND

小時和秒

hh:ss

MINUTE_SECOND

分鐘和秒

mm:ss

來看一個具體的例子,在這個例子中第1列返回了當前日期時間,第2列返回距離當前日期31天后的日期時間,第3列返回距離當前日期一年兩個月後的日期時間。

 

示例1:

 

mysql> select now() current,date_add(now(),INTERVAL  31 day) after31days,

    -> date_add(now(),INTERVAL  '1_2' year_month) after_oneyear_twomonth;

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

| current             | after31days         | after_oneyear_twomonth |

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

| 2016-11-22 13:47:53 | 2016-12-23 13:47:53 | 2018-01-22 13:47:53    |

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

1 row in set (0.00 sec)

 

一樣也能夠用負數讓它返回以前的某個日期時間,以下第 1 列返回了當前日期時間,第 2列返回距離當前日期31天前的日期時間,第3列返回距離當前日期一年兩個月前的日期時間。

 

示例2:

mysql>  select now() current,date_add(now(),INTERVAL  -31 day) after31days,

    ->  date_add(now(),INTERVAL  '-1_-2' year_month) after_oneyear_twomonth;

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

| current             | after31days         | after_oneyear_twomonth |

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

| 2016-11-22 13:49:08 | 2016-10-22 13:49:08 | 2015-09-22 13:49:08    |

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

1 row in set (0.00 sec)

下面的例子計算出當前距離2020年2月2日還有多少天:

 

示例3:

mysql> select DATEDIFF('2020-02-02',now());

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

| DATEDIFF('2020-02-02',now()) |

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

|                         1167 |

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

1 row in set (0.04 sec)

相關文章
相關標籤/搜索