计算两个时间的差值,并将该差值以指定的时间单位datepart表示。
命令格式
BIGINT TIME_DIFF(BIGINT <time1>, BIGINT <time2>, STRING <datepart>)
参数说明
time1、time2:必填,BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,您可以用TO_TIME函数进行构造。
说明在MaxCompute 1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。
datepart:必填,STRING类型常量。指定返回值的时间单位,该字段支持的取值如下:
小时:
HOUR
或hh
。分钟:
MINUTE
或mi
。秒:
SECOND
或ss
。毫秒:
MILLIS
或ff3
。微秒:
MICROS
或ff6
。
返回值说明
返回BIGINT类型,以微秒为单位用BIGINT类型表示的时间值。返回规则如下:
time1或time2非BIGINT类型时,返回报错。
如果time1小于time2,返回结果为负数。
time1、time2和datepart中有任意一个值为NULL时,返回NULL。
当datepart为非常量、不支持的格式或其他类型时,返回报错。
使用示例
-- 返回 1106600
SELECT TIME_DIFF(1230000,123400,'ff6');
-- 返回 -20000
SELECT TIME_DIFF(TO_TIME(15,39,10),TO_TIME(15,39,30),'ff3');
-- 返回 10
SELECT TIME_DIFF(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'),TO_TIME(TIMESTAMP '2025-03-27 15:39:30'),'second');
-- 返回 2
SELECT TIME_DIFF(TO_TIME(12,14,10),TO_TIME(09,39,30),'hour');
相关函数
TIME_DIFF函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数。
该文章对您有帮助吗?