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 値です。この値は TO_TIME 関数を使用して作成できます。
MaxCompute 1.0 データ型エディションでは、このパラメーターが STRING または DOUBLE の場合、計算で使用される前に BIGINT 型に暗黙的に変換されます。
delta: 必須。追加する間隔を指定する BIGINT 値です。delta が 0 より大きい場合は加算が実行され、それ以外の場合は減算が実行されます。
MaxCompute 1.0 データ型エディションでは、このパラメーターが STRING または DOUBLE の場合、計算で使用される前に BIGINT 型に暗黙的に変換されます。
date_part: 必須。時間単位を指定する STRING 定数です。次の値がサポートされています:
時:
HOURまたはhh。分:
MINUTEまたはmi。秒:
SECONDまたはss。ミリ秒:
MILLISまたはff3。マイクロ秒:
MICROSまたはff6。
戻り値
マイクロ秒単位の時間値を表す BIGINT 値を返します。次のルールが適用されます:
time パラメーターが BIGINT でない場合、エラーが返されます。
date_part が定数でない場合、サポートされていないフォーマットである場合、または別のデータ型である場合、エラーが返されます。
time、delta、または date_part が NULL の場合、NULL が返されます。
例
例 1: マイクロ秒 ('ff6') 単位の時間値に間隔を追加します。
-- 1239 を返します。 SELECT TIME_ADD(1234, 5, 'ff6');例 2: ミリ秒 ('millis') 単位の期間を時間値に追加します。
-- MaxCompute V2.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 V2.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 時間値を指定されたフォーマットの文字列に変換します。
-- 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 は時間関数です。時間計算と変換を実行する関数の詳細については、「日付関数と時刻関数」をご参照ください。