All Products
Search
Document Center

MaxCompute:TIME_ADD

Last Updated:Nov 13, 2025

Fungsi TIME_ADD menambahkan interval delta ke nilai waktu time berdasarkan satuan waktu yang ditentukan oleh date_part.

Syntax

BIGINT TIME_ADD(BIGINT <time>, BIGINT <delta>, STRING <date_part>)

-- Contoh standar.
-- Mengembalikan 5001234.
SELECT TIME_ADD(1234,5,'second');

Parameters

  • time: Wajib diisi. Nilai BIGINT yang merepresentasikan waktu dalam mikrodetik. Anda dapat menggunakan fungsi TO_TIME untuk membuat nilai ini.

    Dalam edisi tipe data MaxCompute 1.0, jika parameter ini berupa STRING atau DOUBLE, nilai tersebut akan dikonversi secara implisit ke tipe BIGINT sebelum digunakan dalam perhitungan.

  • delta: Wajib diisi. Nilai BIGINT yang menentukan interval yang akan ditambahkan. Jika delta bernilai positif, operasi penambahan dilakukan; jika negatif, operasi pengurangan dilakukan.

    Dalam edisi tipe data MaxCompute 1.0, jika parameter ini berupa STRING atau DOUBLE, nilai tersebut akan dikonversi secara implisit ke tipe BIGINT sebelum digunakan dalam perhitungan.

  • date_part: Wajib diisi. Konstanta STRING yang menentukan satuan waktu. Nilai-nilai berikut didukung:

    • Jam: HOUR atau hh.

    • Menit: MINUTE atau mi.

    • Detik: SECOND atau ss.

    • Milidetik: MILLIS atau ff3.

    • Mikrodetik: MICROS atau ff6.

Return value

Mengembalikan nilai BIGINT yang merepresentasikan waktu dalam mikrodetik. Aturan berikut berlaku:

  • Jika parameter time bukan bertipe BIGINT, kesalahan akan dikembalikan.

  • Jika date_part bukan konstanta, memiliki format yang tidak didukung, atau merupakan tipe data lain, kesalahan akan dikembalikan.

  • Jika salah satu dari parameter time, delta, atau date_part bernilai NULL, fungsi mengembalikan NULL.

Examples

  • Contoh 1: Menambahkan interval ke nilai waktu dalam mikrodetik ('ff6').

    -- Mengembalikan 1239.
    SELECT TIME_ADD(1234, 5, 'ff6');
  • Contoh 2: Menambahkan durasi dalam milidetik ('millis') ke nilai waktu.

    -- Aktifkan tipe data MaxCompute V2.0.
    SET odps.sql.type.system.odps2 = true;
    
    -- Mengembalikan 56680123456.
    SELECT TIME_ADD(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'), 5, 'ff3');
  • Contoh 3: Menambahkan interval ke nilai waktu dalam detik ('second').

    -- Mengembalikan 56385000000.
    SELECT TIME_ADD(TO_TIME(15,39,40),5,'second');
  • Contoh 4: Menambahkan interval ke nilai waktu dalam jam ('hh').

    -- Aktifkan tipe data MaxCompute V2.0.
    SET odps.sql.type.system.odps2 = true;
    
    -- Mengembalikan 74380000000.
    SELECT TIME_ADD(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'), 5, 'hh');
  • Contoh 5: Gunakan fungsi FORMAT_TIME untuk mengonversi nilai waktu BIGINT yang dikembalikan menjadi string dalam format tertentu.

    -- Mengembalikan 15:44:40.
    SELECT FORMAT_TIME(TIME_ADD(TO_TIME('15:39:40','%H:%M:%S'),5,'mi'),'%H:%M:%S');
  • Contoh 6: Menangani input NULL.

    -- Jika ada parameter yang NULL, maka NULL dikembalikan.
    -- Mengembalikan NULL.
    SELECT TIME_ADD(NULL, 5, 'second');
    
    -- Mengembalikan NULL.
    SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), NULL, 'second');
    
    -- Mengembalikan NULL.
    SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), 5, NULL);
    
    -- Mengembalikan NULL.
    SELECT TIME_ADD(NULL, NULL, NULL);

Related functions

TIME_ADD adalah fungsi waktu. Untuk informasi selengkapnya mengenai fungsi yang melakukan perhitungan dan konversi waktu, lihat Fungsi tanggal dan waktu.