TIME_ADD函數用於按照指定的時間單位date_part,在指定的時間值time上增加指定的幅度delta。
命令格式
BIGINT TIME_ADD(BIGINT <time>, BIGINT <delta>, STRING <date_part>)
-- 標準樣本。
-- 返回5001234。
SELECT TIME_ADD(1234,5,'second');參數說明
time:必填。以微秒為單位用BIGINT類型表示的時間值。BIGINT類型。可以通過TO_TIME函數構造。
在1.0資料類型版本下,如果參數為STRING或DOUBLE類型,則會被隱式轉換為BIGINT類型後參與運算。
delta:必填。修改幅度。BIGINT類型。如果delta大於0,則進行增運算,否則進行減運算。
在1.0資料類型版本下,如果參數為STRING或DOUBLE類型,則會被隱式轉換為BIGINT類型後參與運算。
date_part:必填。指定修改的時間單位。STRING類型常量。該參數支援的取值如下:
小時:
HOUR或hh。分鐘:
MINUTE或mi。秒:
SECOND或ss。毫秒:
MILLIS或ff3。微秒:
MICROS或ff6。
傳回值說明
返回BIGINT類型。以微秒為單位用BIGINT類型表示的時間值,返回規則如下:
time非BIGINT類型時,返回報錯。
date_part為非常量、不支援的格式或其他類型時,返回報錯。
time、delta或date_part值為NULL時,返回NULL。
使用樣本
樣本1:對時間值進行以微秒'ff6'為單位的加法運算。
-- 返回1239。 SELECT TIME_ADD(1234, 5, 'ff6');樣本2:對時間值進行以毫秒'millis'為單位的加法運算。
-- 開啟MaxCompute 2.0資料類型版本。 SET odps.sql.type.system.odps2 = true; -- 返回56680123456。 SELECT TIME_ADD(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'), 5, 'ff3');樣本3:對時間值進行以毫秒'second'為單位的加法運算。
-- 返回56385000000。 SELECT TIME_ADD(TO_TIME(15,39,40),5,'second');樣本4:對時間值進行以小時'hh'為單位的加法運算。
-- 開啟MaxCompute 2.0資料類型版本。 SET odps.sql.type.system.odps2 = true; -- 返回74380000000。 SELECT TIME_ADD(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'), 5, 'hh');樣本5:使用FORMAT_TIME函數將返回的BIGINT類型的時間值,轉換為指定format時間格式的STRING類型時間。
-- 返回15:44:40。 SELECT FORMAT_TIME(TIME_ADD(TO_TIME('15:39:40','%H:%M:%S'),5,'mi'),'%H:%M:%S');樣本6:NULL輸入處理。
-- 任意參數為NULL時返回NULL。 -- 返回NULL。 SELECT TIME_ADD(NULL, 5, 'second'); -- 返回NULL。 SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), NULL, 'second'); -- 返回NULL。 SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), 5, NULL); -- 返回NULL。 SELECT TIME_ADD(NULL, NULL, NULL);
相關函數
TIME_ADD函數屬於時間函數,更多時間計算、時間轉換的相關函數請參見日期與時間函數。