MySQL中ADDDATE()和DATE_ADD()的区别

ADDDATE()有两种形式:ADDDATE(date,INTERVAL expr unit)和ADDDATE(expr,days)

第一种和DATE_ADD()完全一样,第二种中第二个参数只能是天。其实就是第一种的功能包括第二种。

在命令行中输入help adddate; 参看英文解释,如下:

mysql> help adddate;
Name: 'ADDDATE'
Description:
Syntax:
ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)

When invoked with the INTERVAL form of the second argument, ADDDATE()
is a synonym for DATE_ADD(). The related function SUBDATE() is a
synonym for DATE_SUB(). For information on the INTERVAL unit argument,
see
http://dev.mysql.com/doc/refman/8.0/en/expressions.html#temporal-interv
als.

mysql> SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);
        -> '2008-02-02'
mysql> SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);
        -> '2008-02-02'

When invoked with the days form of the second argument, MySQL treats it
as an integer number of days to be added to expr.

URL: http://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

Examples:
mysql> SELECT ADDDATE('2008-01-02', 31);
        -> '2008-02-02'

mysql> help date_add;
Name: 'DATE_ADD'
Description:
Syntax:
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)

These functions perform date arithmetic. The date argument specifies
the starting date or datetime value. expr is an expression specifying
the interval value to be added or subtracted from the starting date.
expr is evaluated as a string; it may start with a - for negative
intervals. unit is a keyword indicating the units in which the
expression should be interpreted.

URL: http://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

Examples:
mysql> SELECT DATE_ADD('2018-05-01',INTERVAL 1 DAY);
        -> '2018-05-02'
mysql> SELECT DATE_SUB('2018-05-01',INTERVAL 1 YEAR);
        -> '2017-05-01'
mysql> SELECT DATE_ADD('2020-12-31 23:59:59',
    ->                 INTERVAL 1 SECOND);
        -> '2021-01-01 00:00:00'
mysql> SELECT DATE_ADD('2018-12-31 23:59:59',
    ->                 INTERVAL 1 DAY);
        -> '2019-01-01 23:59:59'
mysql> SELECT DATE_ADD('2100-12-31 23:59:59',
    ->                 INTERVAL '1:1' MINUTE_SECOND);
        -> '2101-01-01 00:01:00'
mysql> SELECT DATE_SUB('2025-01-01 00:00:00',
    ->                 INTERVAL '1 1:1:1' DAY_SECOND);
        -> '2024-12-30 22:58:59'
mysql> SELECT DATE_ADD('1900-01-01 00:00:00',
    ->                 INTERVAL '-1 10' DAY_HOUR);
        -> '1899-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
    ->            INTERVAL '1.999999' SECOND_MICROSECOND);
        -> '1993-01-01 00:00:01.000001'

 

你可能感兴趣的:(MySQL,MySQL,ADDDATE,DATE_ADD)