TIME_ADD

按照指定的时间单位datepart,在指定的时间值time上增加指定的幅度delta

命令格式

BIGINT TIME_ADD(BIGINT <time>, BIGINT <delta>, STRING <datepart>)

参数说明

参数

描述

time

必填,BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,您可以用TO_TIME函数进行构造。

说明

MaxCompute 1.0数据类型版本下,如果参数为STRINGDOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。

delta

必填,BIGINT类型。修改幅度,如果delta大于0,则进行增运算,否则进行减运算。

说明

MaxCompute 1.0数据类型版本下,如果参数为STRINGDOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。

datepart

必填,STRING类型常量。指定修改的时间单位,参数为非常量、不支持的格式或其他类型时,会返回报错。该参数支持的取值如下:

  • 小时:HOURhh

  • 分钟:MINUTEmi

  • 秒:SECONDss

  • 毫秒:MILLISff3

  • 微秒:MICROSff6

返回值说明

返回BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,返回规则如下:

  • timeBIGINT类型时,返回报错。

  • timedeltadatepart值为NULL时,返回NULL。

使用示例

示例1:普通示例

--返回 1239
SELECT TIME_ADD(1234,5,'ff6');

--返回 56385000000
SELECT TIME_ADD(TO_TIME(15,39,40),5,'second');

--返回 74380000000
SELECT TIME_ADD(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'),5,'hh');

--返回 56680123456
SELECT TIME_ADD(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'),5,'ff3');

示例2:时间格式转换

使用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');

相关函数

TIME_ADD函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数