更新时间:2023-11-03 GMT+08:00

date_add

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

如需要获取当前日期基础上指定变动幅度的日期,可结合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。

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

示例代码

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

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

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

select date_add(date '2023-02-28', -1);

返回2023-03-20。

select date_add('2023-02-28 00:00:00', 20);

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

select date_add(getdate(),-1);

返回NULL。

select date_add('2023-02-28 00:00:00', null);