更新时间:2026-07-17 GMT+08:00
分享

date_add

date_add函数用于计算按照days幅度递增start_date日期的天数。

如需要获取当前日期基础上指定变动幅度的日期,可结合current_dategetdate函数共同使用。

请注意date_add函数与date_sub函数逻辑相反。

命令格式

date_add(string startdate, int days)

参数说明

表1 参数说明

参数

是否必选

参数类型

说明

start_date

DATE

STRING

代表起始日期。

支持以下格式:

  • yyyy-mm-dd
  • yyyy-mm-dd hh:mi:ss
  • yyyy-mm-dd hh:mi:ss.ff3

days

BIGINT

代表需要增加天的数量。

  • days大于0,则为增加天数。
  • days小于0,则减去天数。
  • days等于0,即加0天,日期不变。
  • days值为NULL时,返回NULL。

返回值说明

返回DATE类型的日期值,格式为yyyy-mm-dd。

  • start_date非DATE或STRING类型时,返回报错,错误信息:data type mismatch;
  • start_date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL;
  • start_date值为NULL时,返回NULL。
  • days值为NULL时,返回NULL。

示例代码

  • 示例1
    select date_add('2023-02-28 00:00:00', 1);

    返回2023-03-01。加1天,结果超出当年2月份的最后1天,实际值为下个月的第1天。

  • 示例2
    select date_add(date '2023-02-28', -1);

    返回2023-02-27。减1天。

  • 示例3
    select date_add('2023-02-28 00:00:00', 20);

    返回2023-03-20。

  • 示例4
    select date_add(getdate(),-1);

    假设当前时间为2023-08-14 16:00:00,返回2023-08-13。

  • 示例5
    select date_add('2023-02-28 00:00:00', null);

    返回NULL。

相关文档