全部產品
Search
文件中心

MaxCompute:TO_MILLIS

更新時間:Dec 02, 2025

TO_MILLIS函數用於將指定的日期時間值date轉換為UNIX時間戳記(代表從 1970年1月1日 00:00:00 UTC 開始,所經過的毫秒數),返回一個BIGINT類型的時間戳記。

命令格式

BIGINT TO_MILLIS(DATETIME|TIMESTAMP|TIMESTAMP_NTZ <date>);

-- 標準樣本。
-- 返回1617174900000。
SELECT TO_MILLIS(DATETIME '2021-03-31 15:15:00');

參數說明

date:必填。日期值。DATETIME、TIMESTAMP或TIMESTAMP_NTZ類型。

傳回值說明

返回BIGINT類型。表示從1970-01-01 00:00:00 UTC到date所經過的總毫秒數(基於 UTC 時區計算)。返回規則如下:

使用樣本

  • 樣本1:將DATETIME值轉換為以毫秒為單位用BIGINT類型表示的UNIX時間戳記。

    -- 返回1743405300000。
    SELECT TO_MILLIS(DATETIME '2025-03-31 15:15:00');
  • 樣本2:將TIMESTAMP時間戳記轉換為以毫秒為單位用BIGINT類型表示的UNIX時間戳記。

    -- 設定資料類型版本為2.0。
    SET odps.sql.type.system.odps2 = true;
    
    -- TIMESTAMP 包含毫秒部分。
    -- 返回1736524800123。
    SELECT TO_MILLIS(TIMESTAMP '2025-01-11 00:00:00.123');
    
    -- 轉換時,秒的小數部分截斷後六位,僅保留三位。
    -- 返回1736524800123。
    SELECT TO_MILLIS(TIMESTAMP '2025-01-11 00:00:00.123456789');
  • 樣本3:將TIMESTAMP_NTZ時間戳記轉換為以毫秒為單位用BIGINT類型表示的UNIX時間戳記。

    -- 設定資料類型版本為2.0。
    SET odps.sql.type.system.odps2 = true;
    -- 返回1740817815123。
    SELECT TO_MILLIS(TIMESTAMP_NTZ '2025-03-01 08:30:15.123');
  • 樣本4:NULL輸入處理。

    -- 設定資料類型版本為1.0。
    SET odps.sql.type.system.odps2 = false;
    -- 返回NULL。
    SELECT TO_MILLIS(NULL);
    
    -- 設定資料類型版本為2.0。
    SET odps.sql.type.system.odps2 = true;
    -- 返回報錯。
    SELECT TO_MILLIS(NULL);

相關函數

TO_MILLIS函數屬於日期函數,更多日期計算、日期轉換的相關函數請參見日期函數