TIME_ADD函数用于按照指定的时间单位date_part,在指定的时间值time上增加指定的幅度delta。
命令格式
BIGINT TIME_ADD(BIGINT <time>, BIGINT <delta>, STRING <date_part>)
-- 标准示例。
-- 返回5001234。
SELECT TIME_ADD(1234,5,'second');参数说明
time:必填。以微秒为单位用BIGINT类型表示的时间值。BIGINT类型。可以通过TO_TIME函数构造。
在1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。
delta:必填。修改幅度。BIGINT类型。如果delta大于0,则进行增运算,否则进行减运算。
在1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。
date_part:必填。指定修改的时间单位。STRING类型常量。该参数支持的取值如下:
小时:
HOUR或hh。分钟:
MINUTE或mi。秒:
SECOND或ss。毫秒:
MILLIS或ff3。微秒:
MICROS或ff6。
返回值说明
返回BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,返回规则如下:
time非BIGINT类型时,返回报错。
date_part为非常量、不支持的格式或其他类型时,返回报错。
time、delta或date_part值为NULL时,返回NULL。
使用示例
示例1:对时间值进行以微秒'ff6'为单位的加法运算。
-- 返回1239。 SELECT TIME_ADD(1234, 5, 'ff6');示例2:对时间值进行以毫秒'millis'为单位的加法运算。
-- 开启MaxCompute 2.0数据类型版本。 SET odps.sql.type.system.odps2 = true; -- 返回56680123456。 SELECT TIME_ADD(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'), 5, 'ff3');示例3:对时间值进行以毫秒'second'为单位的加法运算。
-- 返回56385000000。 SELECT TIME_ADD(TO_TIME(15,39,40),5,'second');示例4:对时间值进行以小时'hh'为单位的加法运算。
-- 开启MaxCompute 2.0数据类型版本。 SET odps.sql.type.system.odps2 = true; -- 返回74380000000。 SELECT TIME_ADD(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'), 5, 'hh');示例5:使用FORMAT_TIME函数将返回的BIGINT类型的时间值,转换为指定format时间格式的STRING类型时间。
-- 返回15:44:40。 SELECT FORMAT_TIME(TIME_ADD(TO_TIME('15:39:40','%H:%M:%S'),5,'mi'),'%H:%M:%S');示例6:NULL输入处理。
-- 任意参数为NULL时返回NULL。 -- 返回NULL。 SELECT TIME_ADD(NULL, 5, 'second'); -- 返回NULL。 SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), NULL, 'second'); -- 返回NULL。 SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), 5, NULL); -- 返回NULL。 SELECT TIME_ADD(NULL, NULL, NULL);
相关函数
TIME_ADD函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数。
该文章对您有帮助吗?