全部產品
Search
文件中心

MaxCompute:TIME_TRUNC

更新時間:Nov 25, 2025

TIME_TRUN函數用於將時間time按照date_part指定的時間單位進行截取,返回以微秒為單位用BIGINT類型表示的時間值。

命令格式

BIGINT TIME_TRUNC(BIGINT <time>, STRING <date_part>)

-- 標準樣本。
-- 1234567890。
SELECT TIME_TRUNC(1234567890L,'ff6');

參數說明

  • time:必填。以微秒為單位用BIGINT類型表示的時間值。BIGINT類型。可以通過TO_TIME函數構造。

    在MaxCompute 1.0資料類型版本下,如果參數為STRING或DOUBLE類型,則會被隱式轉換為BIGINT類型後參與運算。

  • date_part:必填。指定截斷的時間單位。STRING類型常量。該參數取值如下:

    • MICROSECOND/MICROS/ff6:如果使用此粒度,時間值不會被截斷,因為微秒是時間表示的最小單位。

    • MILLISECOND/MILLIS/ff3:截斷到最近的、小於或等於當前值的毫秒層級。例如:時間為15:30:00.123456,截斷到毫秒後結果為15:30:00.123。

    • SECOND/SS:截斷到最接近的、小於或等於當前值的秒層級。例如:時間為15:30:00.123456,截斷到秒後結果為15:30:00。

    • MINUTE/MI:截斷到最接近的、小於或等於當前值的分鐘層級。例如:時間為15:30:45.123456,截斷到分鐘後結果為15:30:00。

    • HOUR/HH:截斷到最接近的、小於或等於當前值的小時層級。例如:時間為15:45:30.123456,截斷到小時後結果為15:00:00。

傳回值說明

返回BIGINT類型,以微秒為單位用BIGINT類型表示的時間值。返回規則如下:

  • time非BIGINT類型時,返回報錯。

  • date_part為非常量、不支援的格式或其他類型時,返回報錯。

  • time或date_part值為NULL時,返回NULL。

使用樣本

基本樣本

  • 樣本1:以微秒'ff6'和毫秒'ff3'為粒度進行時間值截取。

    -- 按微秒 ff6 為粒度截取,返回1234567890。
    SELECT TIME_TRUNC(1234567890, 'ff6');
    
    -- 按毫秒 ff3 為粒度截取,返回 1234567000。
    SELECT TIME_TRUNC(1234567890, 'ff3');
  • 樣本2:以小時'HOUR'、分鐘'MINUTE' 和秒'SECOND'為粒度進行時間值截取,然後使用FORMAT_TIME函數將返回的BIGINT類型的時間值,轉換為指定format時間格式的STRING類型時間。

    -- 將時間'15:31:38.776'分別按不同粒度截斷,並格式化輸出。
    -- 按小時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;
  • 樣本3:NULL輸入處理。

    -- 返回NULL。
    SELECT TIME_TRUNC(NULL, 'SECOND');
    
    -- date_part為NULL,返回NULL。
    SELECT TIME_TRUNC(TO_TIME(12,00,00), NULL);

相關函數

TIME_TRUNC函數屬於時間函數,更多時間計算、時間轉換的相關函數請參見日期與時間函數。