すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:TIME_ADD

最終更新日:Nov 13, 2025

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 は時間関数です。時間計算と変換を実行する関数の詳細については、「日付関数と時刻関数」をご参照ください。