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:
HOURatauhh.Menit:
MINUTEataumi.Detik:
SECONDatauss.Milidetik:
MILLISatauff3.Mikrodetik:
MICROSatauff6.
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.