TIME_DIFF

计算两个时间的差值,并将该差值以指定的时间单位datepart表示。

命令格式

BIGINT TIME_DIFF(BIGINT <time1>, BIGINT <time2>, STRING <datepart>)

参数说明

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

    说明

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

  • datepart:必填,STRING类型常量。指定返回值的时间单位,该字段支持的取值如下:

    • 小时:HOURhh

    • 分钟:MINUTEmi

    • 秒:SECONDss

    • 毫秒:MILLISff3

    • 微秒:MICROSff6

返回值说明

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

  • time1time2BIGINT类型时,返回报错。

  • 如果time1小于time2,返回结果为负数。

  • time1time2datepart中有任意一个值为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函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数