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

date_sub

date_sub函数按照days幅度递减startdate日期的天数。

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

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

命令格式

date_sub(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类型的日期值。

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

示例代码

返回2023-08-12。减2天。

select date_sub('2023-08-14 17:00:00', 2);

返回2023-08-15。增1天。

select date_sub(date'2023-08-14', -1);

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

select date_sub(getdate(),1);

返回NULL。

select date_sub('2023-08-14 17:00:00', null);