dateadd
dateadd函数用于按照指定的单位datepart和幅度delta修改date的值。
如需要获取当前日期基础上指定变动幅度的日期,可结合current_date或getdate函数共同使用。
命令格式
dateadd(string date, bigint delta, string datepart)
参数说明
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
date |
是 |
DATE 或 STRING |
代表起始日期。 支持以下格式:
|
delta |
是 |
BIGINT |
代表修改幅度。 |
datepart |
是 |
BIGINT |
代表修改的时间单位。 参数datepart支持扩展的日期格式:年-year、月-month或-mon、日-day和小时-hour。
|
返回值说明
返回STRING类型的日期值。
- date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。
- date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。
- date值为NULL时,返回NULL。
- delta或datepart值为NULL时,返回NULL。
示例代码
返回2023-08-15 17:00:00。加1天。
select dateadd( '2023-08-14 17:00:00', 1, 'dd');
返回2025-04-14 17:00:00。加20个月,月份溢出,年份加1。
select dateadd('2023-08-14 17:00:00', 20, 'mm');
返回2023-09-14 17:00:00。
select dateadd('2023-08-14 17:00:00', 1, 'mm');
返回2023-09-14。
select dateadd('2023-08-14', 1, 'mm');
假设当前时间为2023-08-14 17:00:00,返回2023-08-13 17:00:00。
select dateadd(getdate(),-1,'dd');
返回NULL。
select dateadd(date '2023-08-14', 1, null);