All Products
Search
Document Center

MaxCompute:TO_TIME

Last Updated:Nov 26, 2025

Fungsi TO_TIME membangun atau mengonversi data waktu dari berbagai tipe dan format menjadi nilai waktu BIGINT dalam mikrodetik.

Sintaksis

Fungsi TO_TIME mendukung empat tanda tangan berikut. Pilih tanda tangan yang sesuai dengan kebutuhan Anda.

  • Signature 1: Mengurai input STRING value berdasarkan format yang ditentukan dan mengembalikan nilai waktu BIGINT dalam mikrodetik.

    BIGINT TO_TIME(STRING <value>, STRING <format>)
    
    -- Contoh standar.
    -- Mengembalikan 48273000000.
    SELECT TO_TIME('13:24:33', '%H:%M:%S');
  • Tanda tangan 2: Menggunakan nilai BIGINT untuk jam, menit, dan detik untuk membangun nilai waktu BIGINT dalam mikrodetik.

    BIGINT TO_TIME(BIGINT <hour>, BIGINT <minute>, BIGINT <second>)
    
    -- Contoh standar.
    -- Mengembalikan 55800000000.
    SELECT TO_TIME(15, 30, 0);
  • Tanda tangan 3: Mengonversi data TIMESTAMP ke nilai waktu dalam zona waktu tertentu dan mengembalikan nilai waktu BIGINT dalam mikrodetik.

    BIGINT TO_TIME(TIMESTAMP <timestamp>[, STRING <time_zone>])
    
    -- Contoh standar.
    -- Mengembalikan 55801123000.
    SELECT TO_TIME(TIMESTAMP '2019-09-01 15:30:01.123');
  • Tanda tangan 4: Mengonversi data TIMESTAMP_NTZ menjadi nilai waktu BIGINT dalam mikrodetik.

    BIGINT TO_TIME(TIMESTAMP_NTZ <timestamp_ntz>)
    
    -- Contoh standar.
    -- Mengembalikan 55801123456.
    SELECT TO_TIME(TIMESTAMP_NTZ '2025-09-01 15:30:01.123456');

Parameter

Parameter

Deskripsi

value

Wajib. Nilai bertipe STRING. Parameter ini menentukan nilai waktu yang ingin Anda konversi. Contoh: 15:20:23.

format

Wajib. Nilai bertipe STRING. Parameter ini menentukan format nilai waktu yang ingin Anda uraikan. Setiap elemen waktu dalam string waktu harus memiliki elemen format yang sesuai. Sebagai contoh, 15:20 sesuai dengan hh:mi, dan 15:20:23 sesuai dengan hh:mi:ss.

Elemen format untuk bagian waktu yang didukung oleh parameter format adalah sebagai berikut:

  • hh, HH, atau %H: jam.

  • mi, MI, atau %M: menit.

  • ss, SS, atau %S: detik.

  • ff3: milidetik. Elemen ini cocok dengan bagian pecahan detik. Sebagai contoh, Anda dapat menggunakan %S.ff3 untuk mencocokkan 00.123.

  • %E<number>S: detik. Presisi adalah <number> digit. Sebagai contoh, Anda dapat menggunakan %E3S untuk mencocokkan 00.123.

  • %E*S: detik dengan presisi penuh enam tempat desimal. Contoh: 00.123456.

Contoh: hh:mi:ss, HH:MI:SS, %H:%M:%S, %H:%M:%E6S, dan %H:%M:%E*S.

hour

Wajib. Nilai bertipe BIGINT. Parameter ini menentukan jam dari waktu yang ingin Anda konversi.

minute

Wajib. Nilai bertipe BIGINT. Parameter ini menentukan menit dari waktu yang ingin Anda konversi.

second

Wajib. Nilai bertipe BIGINT. Parameter ini menentukan detik dari waktu yang ingin Anda konversi.

timestamp

Wajib. Nilai bertipe TIMESTAMP. Parameter ini menentukan timestamp yang ingin Anda konversi.

time_zone

Opsional. Nilai bertipe STRING. Parameter ini menentukan zona waktu.

Jika Anda tidak menentukan parameter ini, zona waktu sesi atau proyek saat ini digunakan. Untuk informasi lebih lanjut tentang zona waktu, lihat Daftar zona waktu.

Catatan

Jika Anda tidak mengubah zona waktu proyek Anda, zona waktu default UTC+08:00 digunakan.

timestamp_ntz

Wajib. Nilai bertipe TIMESTAMP_NTZ. Parameter ini menentukan timestamp tanpa zona waktu yang ingin Anda konversi.

Nilai kembali

Fungsi ini mengembalikan nilai BIGINT. Secara default, nilai waktu diukur dalam mikrodetik. Aturan berikut berlaku:

  • Jika parameter input bertipe TIMESTAMP atau TIMESTAMP_NTZ, bagian tanggal dan nanodetik dihapus, dan hasil dikembalikan dalam mikrodetik.

  • Jika parameter value, timestamp, atau timestamp_ntz bernilai NULL, maka error dikembalikan.

  • Jika parameter hour, minute, atau second bernilai NULL, fungsi mengembalikan NULL.

  • Jika parameter format tidak valid atau NULL, fungsi mengembalikan NULL.

Contoh

Signature 1: TO_TIME(STRING <value>, STRING <format>)

Mengurai input STRING value berdasarkan format yang ditentukan dan mengembalikan nilai waktu BIGINT dalam mikrodetik.

  • Contoh 1: Uraikan string waktu dengan format yang valid.

    -- Gunakan format standar %H:%M:%S untuk mengurai string waktu lengkap.
    -- Mengembalikan 48273000000.
    SELECT TO_TIME('13:24:33', '%H:%M:%S');
    
    -- Gunakan format gaya Oracle hh:mi:ss.
    -- Mengembalikan 46860000000.
    SELECT TO_TIME('13:01:00', 'hh:mi:ss');
    
    -- String hanya berisi jam dan menit.
    -- Mengembalikan 46860000000.
    SELECT TO_TIME('13:01', 'hh:mi');
  • Contoh 2: Uraikan string waktu yang berisi milidetik dan mikrodetik.

    -- String hanya berisi menit dan detik.
    -- Mengembalikan 781000000.
    SELECT TO_TIME('13:01', 'mi:ss');
    
    -- ff3 menunjukkan detik dengan presisi tiga tempat desimal.
    -- Mengembalikan 781123000.
    SELECT TO_TIME('13:01.123', 'mi:ss.ff3');
    
    -- %E6S menunjukkan detik dengan presisi enam tempat desimal (mikrodetik).
    -- Mengembalikan 48273123456.
    SELECT TO_TIME('13:24:33.123456', '%H:%M:%E6S');
    
    -- Karakter wildcard %E*S didukung untuk mendeteksi presisi secara otomatis.
    -- Mengembalikan 48273123456.
    SELECT TO_TIME('13:24:33.123456', '%H:%M:%E*S');
  • Contoh 3: Tangani format yang tidak valid atau tidak sesuai.

    -- Dalam format, %h adalah placeholder yang tidak valid. Seharusnya menggunakan %H.
    -- Mengembalikan NULL.
    SELECT TO_TIME('13:24:33', '%h:%m:%s');
  • Contoh 4: Tangani input NULL.

    -- Format bernilai NULL.
    -- Mengembalikan NULL.
    SELECT TO_TIME('13:24:33', NULL);

Signature 2: TO_TIME(BIGINT <hour>, BIGINT <minute>, BIGINT <second>)

Menggunakan nilai BIGINT untuk jam, menit, dan detik guna membangun nilai waktu BIGINT dalam mikrodetik.

  • Contoh 1: Bangun nilai waktu dengan meneruskan parameter yang valid.

    -- Uraikan string waktu lengkap menggunakan format standar %H:%M:%S.
    -- Mengembalikan 48273000000.
    SELECT TO_TIME('13:24:33', '%H:%M:%S');
    
    -- Gunakan format gaya Oracle hh:mi:ss.
    -- Mengembalikan 46860000000.
    SELECT TO_TIME('13:01:00', 'hh:mi:ss');
    
    -- String input hanya berisi jam dan menit.
    -- Mengembalikan 46860000000.
    SELECT TO_TIME('13:01', 'hh:mi');
  • Contoh 2: Gagal karena parameter tidak lengkap.

    -- Hanya dua parameter yang diberikan, tidak sesuai dengan signature fungsi.
    -- Mengembalikan NULL.
    SELECT TO_TIME(15, 30);
  • Contoh 3: Tangani input NULL.

    -- Jika salah satu parameter bernilai NULL, fungsi mengembalikan NULL.
    -- Mengembalikan NULL.
    SELECT TO_TIME(15, 30, NULL);
    
    -- Mengembalikan NULL.
    SELECT TO_TIME(15, NULL, 00);
    
    -- Mengembalikan NULL.
    SELECT TO_TIME(NULL, 30, 00);

Signature 3: TO_TIME(TIMESTAMP <timestamp>[, STRING <time_zone>])

Mengonversi data TIMESTAMP menjadi nilai waktu dalam zona waktu tertentu dan mengembalikan nilai waktu BIGINT dalam mikrodetik.

  • Contoh 1: Konversi nilai TIMESTAMP dalam zona waktu default.

    -- Ekstrak nilai mikrodetik dari waktu 15:30:01.123 dalam zona waktu Shanghai.
    -- Mengembalikan 55801123000.
    SELECT TO_TIME(TIMESTAMP '2025-09-01 15:30:01.123');
  • Contoh 2: Gunakan bersama FORMAT_TIME untuk mendapatkan hasil yang mudah dibaca.

    -- Konversi hasil TO_TIME menjadi string waktu yang mudah dibaca.
    -- Mengembalikan 15:30:01.123.
    SELECT FORMAT_TIME(TO_TIME(TIMESTAMP '2025-09-01 15:30:01.123'), "%H:%M:%S.ff3");
  • Contoh 3: Tentukan zona waktu tujuan.

    -- Secara eksplisit tentukan zona waktu Asia/Shanghai.
    -- Mengembalikan 55801123000.
    SELECT TO_TIME(TIMESTAMP '2025-09-01 15:30:01.123', 'Asia/Shanghai');
  • Contoh 4: Lakukan konversi antar-zona waktu.

    -- Tokyo berada 1 jam di depan Shanghai. Pukul 15:30 di Shanghai sama dengan 16:30 di Tokyo.
    -- Mengembalikan 59401123456.
    SELECT TO_TIME(TIMESTAMP '2025-09-01 15:30:01.123456', 'Asia/Tokyo');
    
    -- Bangkok berada 1 jam di belakang Shanghai. Pukul 15:30 di Shanghai sama dengan 14:30 di Bangkok.
    -- Mengembalikan 52201123456.
    SELECT TO_TIME(TIMESTAMP '2025-09-01 15:30:01.123456789', 'Asia/Bangkok');

Signature 4: TO_TIME(TIMESTAMP_NTZ <timestamp_ntz>)

Mengonversi data TIMESTAMP_NTZ menjadi nilai waktu BIGINT dalam mikrodetik.

  • Contoh: Ekstrak langsung bagian waktu dari nilai TIMESTAMP_NTZ.

    -- TIMESTAMP_NTZ tidak melibatkan konversi zona waktu. Bagian waktu diekstrak secara langsung.
    -- Mengembalikan 55801123456.
    SELECT TO_TIME(TIMESTAMP_NTZ '2025-09-01 15:30:01.123456789');

Fungsi terkait

TO_TIME adalah fungsi waktu. Untuk informasi lebih lanjut tentang fungsi yang digunakan untuk perhitungan dan konversi waktu, lihat Fungsi Tanggal dan Waktu.