按照指定的时间单位datepart,在指定的时间值time上减少指定的幅度delta。
命令格式
BIGINT TIME_SUB(BIGINT <time>, BIGINT <delta>, STRING <datepart>)
参数说明
参数 | 描述 |
time | 必填,BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,您可以用TO_TIME函数进行构造。 说明 在MaxCompute 1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。 |
delta | 必填,BIGINT类型。修改幅度,如果delta大于0,则进行减运算,否则进行增运算。 说明 在MaxCompute 1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。 |
datepart | 必填,STRING类型常量。指定修改的时间单位,参数为非常量、不支持的格式或其他类型时,会返回报错。该参数支持的取值如下:
|
返回值说明
返回BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,返回规则如下:
time非BIGINT类型时,返回报错。
time、delta或datepart值为NULL时,返回NULL。
使用示例
示例1:普通示例
--返回 1233995
SELECT TIME_SUB(1234000,5,'ff6');
--返回 38380000000
SELECT TIME_SUB(TO_TIME('15:39:40','%H:%M:%S'),5,'hour');
--返回 56379995000
SELECT TIME_SUB(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'),5,'millis');
示例2:时间格式转换
使用FORMAT_TIME函数将返回的BIGINT类型的时间值,转换为指定format时间格式的STRING类型时间。
--返回 15:39:45
SELECT FORMAT_TIME(TIME_SUB(TO_TIME(15,39,40),-5,'second'),'%H:%M:ss');
--返回 15:44:40.123
SELECT FORMAT_TIME(TIME_SUB(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'),-5,'minute'),'%H:%M:%S.ff3');
相关函数
TIME_SUB函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数。
该文章对您有帮助吗?