将时间time按照datepart指定的时间单位进行截取,返回以微秒为单位用BIGINT类型表示的时间值。
命令格式
BIGINT TIME_TRUNC(BIGINT <time>, STRING <datepart>)
参数说明
参数 | 描述 |
time | 必填,BIGINT类型。以微秒为单位用BIGINT类型表示的时间值,您可以用TO_TIME函数进行构造。 说明 在MaxCompute 1.0数据类型版本下,如果参数为STRING或DOUBLE类型,则会被隐式转换为BIGINT类型后参与运算。 |
datepart | 必填,STRING类型。指定截断的粒度。参数为非常量、不支持的格式或其他类型时,会返回报错。该参数取值如下:
|
返回值说明
返回BIGINT类型,以微秒为单位用BIGINT类型表示的时间值。返回规则如下:
time非BIGINT类型时,返回报错。
time或datepart值为NULL时,返回NULL。
使用示例
示例1:截取粒度分别为微秒ff6
和毫秒ff3
TIME_TRUNC函数分别以微秒ff6
、毫秒ff3
为粒度,截取BIGINT类型的时间值1234567890。结果返回以微秒为单位的BIGINT类型时间值。
--以微秒ff6为粒度截取,返回 1234567890微秒
SELECT TIME_TRUNC(1234567890L,'ff6');
--以毫秒ff3为粒度截取,返回 1234567000微秒
SELECT TIME_TRUNC(1234567890L,'ff3');
示例2:截取粒度分别为小时HOUR
、分钟MINUTE
和秒SECOND
TIME_TRUNC函数分别以小时HOUR
、分钟MINUTE
、秒SECOND
为粒度,截取由TO_TIME函数构造的BIGINT类型时间值。然后使用FORMAT_TIME函数将其返回结果(BIGINT时间值)转换为指定时间格式的STRING类型时间值。
--以小时HOUR为粒度截取,返回 15:00:00
SELECT FORMAT_TIME(TIME_TRUNC(TO_TIME('15:31:38.776','hh:mi:ss.ff3'), 'HOUR'),'%H:%M:%S') AS truncated_hour;
--以分钟MINUTE为粒度截取,返回 15:31:00
SELECT FORMAT_TIME(TIME_TRUNC(TO_TIME('15:31:38.776','hh:mi:ss.ff3'), 'MINUTE'),'%H:%M:%S') AS truncated_minute;
--以秒SECOND为粒度截取,返回 15:31:38
SELECT FORMAT_TIME(TIME_TRUNC(TO_TIME('15:31:38.776','hh:mi:ss.ff3'), 'SECOND'),'%H:%M:%S') AS truncated_second;
相关函数
TIME_TRUNC函数属于时间函数,更多时间计算、时间转换的相关函数请参见日期与时间函数。