FORMAT_TIME

FORMAT_TIME函数用于将一个以微秒为单位的BIGINT类型时间值time按照指定的格式format格式化为时间格式STRING类型字符串。

命令格式

STRING FORMAT_TIME(BIGINT <time>, STRING <format>)

-- 标准示例。
-- 返回13:24:33.000。
SELECT FORMAT_TIME(48273000000, '%H:%M:%S.ff3');

参数说明

  • time:必填。以微秒为单位用BIGINT类型表示的时间值。BIGINT类型。可以通过TO_TIME函数构造。

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

  • format必填。用于指定输出的时间字符串格式。STRING类型。format目前支持的时间部分的格式元素如下:

    • hhHH%H:小时。

    • miMI%M:分钟。

    • ssSS%S:秒。

    • ff3:毫秒,单独匹配秒的小数部分,例如用%S.ff3匹配00.123

    • %E<number>S:秒,小数精度为<number>位,例如用%E3S匹配00.123

    • %E*S:有完整6位小数精度的秒,例如00.123456

返回值说明

返回STRING类型。格式化之后的时间字符串。当timeformat中有任意一个值为NULL时,返回NULL。

使用示例

  • 示例1:标准时间格式输出。

    -- 返回13:24:33.000。
    SELECT FORMAT_TIME(48273000000, '%H:%M:%S.ff3');
  • 示例2:自定义文本格式,支持在固定文本中插入小时、分钟、秒及毫秒等时间元素。

    -- 返回 时间是24:33毫秒部分为000。
    SELECT FORMAT_TIME(48273000000,"时间是%M:%S毫秒部分为ff3");
    
    -- 返回only show 13:24。
    SELECT FORMAT_TIME(48273000000,"only show hh:mi");
  • 示例3:结合TO_TIME构造时间值,再进行格式化输出。

    -- 返回15:03:01。
    SELECT FORMAT_TIME(TO_TIME('15:03:01', 'hh:mi:ss'), '%H:%M:ss');
  • 示例4:NULL输入处理。

    -- 任意参数为NULL,均返回NULL。
    -- 返回NULL。
    SELECT FORMAT_TIME(NULL, '%H:%M:%S.ff3');
    
    -- 返回NULL。
    SELECT FORMAT_TIME(48273000000, NULL);

相关函数

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