All Products
Search
Document Center

PolarDB:polar_utility

Last Updated:Mar 29, 2026

Plugin polar_utility memperluas PolarDB for Oracle dengan fungsi tambahan untuk interval dan konversi data. Instal plugin ini sekali per database, lalu panggil fungsinya langsung dalam SQL.

Instal dan hapus plugin

Instal plugin:

CREATE EXTENSION polar_utility;

Hapus plugin:

DROP EXTENSION polar_utility;

Referensi fungsi

polar_utility menyediakan dua kelompok fungsi:

Fungsi interval — mengonversi nilai interval menjadi jumlah hari dalam bentuk numerik, lalu menerapkan transformasi:

FungsiNilai KembaliDeskripsiContoh singkat
to_number(interval)numericJumlah hari sebagai angka desimalto_number(interval '2.1 day')2.1
trunc(interval)numericJumlah hari, hanya bagian bilangan bulatnyatrunc(interval '2.1 day')2
abs(interval)numericJumlah hari absolutabs(interval '-1 day')1
to_char(interval)textJumlah hari sebagai stringto_char(interval '2.1 day')'2.1'

Fungsi konversi — mengurai atau meng-encode ulang nilai:

FungsiMengembalikanDeskripsiContoh singkat
to_date(numeric, character varying)dateMengurai string tanggal numerik menggunakan format maskto_date('20200811','yyyymmddhh24miss')Tue Aug 11 00:00:00 2020
to_date(timestamp without time zone)dateMengubah timestamp menjadi nilai tanggalto_date('11-AUG-20 03:16:09.089308'::timestamp)Tue Aug 11 03:16:09.089308 2020
mod(text, text)numericOperasi modulo pada nilai teks (dikonversi ke numerik terlebih dahulu)mod('10'::text, '2'::text)0
convert(text, text)textMeng-encode ulang string ke encoding yang ditentukanconvert('RAM is the new disk.', 'utf8')'RAM is the new disk.'

Siapkan data uji

Contoh berikut menggunakan tabel uji yang sama. Jalankan pernyataan berikut sekali untuk membuatnya:

CREATE TABLE polar_test_interval_func(a interval);

INSERT INTO polar_test_interval_func
VALUES (interval '1.1 hour'),
       (interval '2.1 day'),
       (interval '3.1 month'),
       (interval '4.3 year'),
       (('11-AUG-20 03:16:09.089308'::timestamp - 1) - '11-AUG-20 03:16:09.089308'::timestamp),
       (('11-AUG-20 03:16:09.089308'::timestamp + 3) - '11-AUG-20 03:16:09.089308'::timestamp);

Fungsi interval

to_number(interval)

Mengonversi nilai interval menjadi jumlah hari ekuivalennya, dikembalikan sebagai numeric.

SELECT to_number(a) FROM polar_test_interval_func;

Hasil:

        to_number
-------------------------
  0.04583333333333333333
      2.1000000000000000
     93.0000000000000000
   1551.0000000000000000
 -1.00000000000000000000
      3.0000000000000000
(6 rows)

trunc(interval)

Mengonversi nilai interval menjadi jumlah hari ekuivalennya, lalu membuang bagian pecahan dan mengembalikan bagian bilangan bulat sebagai numeric.

SELECT trunc(a) FROM polar_test_interval_func;

Hasil:

 trunc
-------
     0
     2
    93
  1551
    -1
     3
(6 rows)

abs(interval)

Mengonversi nilai interval menjadi jumlah hari ekuivalennya, lalu mengembalikan nilai absolutnya sebagai numeric.

SELECT abs(a) FROM polar_test_interval_func;

Hasil:

          abs
------------------------
 0.04583333333333333333
     2.1000000000000000
    93.0000000000000000
  1551.0000000000000000
 1.00000000000000000000
     3.0000000000000000
(6 rows)

to_char(interval)

Mengonversi nilai interval menjadi jumlah hari ekuivalennya, lalu mengembalikan angka tersebut sebagai string text.

SELECT to_char(a) FROM polar_test_interval_func;

Hasil:

         to_char
-------------------------
 0.04583333333333333333
 2.1000000000000000
 93.0000000000000000
 1551.0000000000000000
 -1.00000000000000000000
 3.0000000000000000
(6 rows)

Fungsi konversi

to_date(numeric, character varying)

Mengonversi string tanggal numerik menjadi nilai tanggal menggunakan format mask yang ditentukan.

SELECT to_date('20200811','yyyymmddhh24miss');

Hasil:

         to_date
--------------------------
 Tue Aug 11 00:00:00 2020
(1 row)

to_date(timestamp without time zone)

Menerima nilai timestamp dan mengembalikan nilai tanggal.

SELECT to_date('11-AUG-20 03:16:09.089308'::timestamp);

Hasil:

             to_date
---------------------------------
 Tue Aug 11 03:16:09.089308 2020
(1 row)

mod(text, text)

Menjalankan operasi modulo pada dua nilai text. Nilai-nilai tersebut di-cast ke numeric sebelum perhitungan dilakukan.

SELECT mod('10'::text, '2'::text);

Hasil:

 mod
-----
   0
(1 row)

convert(text, text)

Meng-encode ulang string ke encoding target yang ditentukan dalam argumen kedua.

SELECT convert('RAM is the new disk.', 'utf8');

Hasil:

       convert
----------------------
 RAM is the new disk.
(1 row)