MySQL常用函数系列之九:日期和时间函数 函数(4)

天涯浪子 提交于 2020-03-01 07:49:57

                     

本文将实例演示DATE_ADD函数用法。

DATE_ADD(date,INTERVAL exprtype)函数:返回与所给日期date相差INTERVAL时间段的日期。其中INTERVAL是间隔类型关键字,expr是一个表达式,这个表达式对应后面的类型,type是间隔类型,MySQL提供了13种间隔类型,如表所示。

表达式类型

描述

格式

HOUR

小时

hh

MINUTE

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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!