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函數屬於日期函數,更多日期計算、日期轉換的相關函數請參見日期函數。