Di Oracle Database, saat menggunakan TO_CHAR()
berfungsi untuk mengembalikan nama hari dari suatu tanggal, padding akan ditambahkan ke nama hari jika lebih pendek dari nama hari terpanjang yang valid untuk bahasa dan kalender yang diberikan.
Nah, itulah perilaku default. Namun, Anda dapat mengubahnya jika diinginkan.
Untuk menekan padding ini, yang perlu Anda lakukan adalah menambahkan elemen format nama hari dengan fm
.
Contoh
Misalkan kita menjalankan kode berikut:
SELECT
TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;
Hasil:
Friday , 08 March 2030
Kita dapat melihat bahwa spasi tambahan telah ditambahkan ke nama hari dan nama bulan.
Kita bisa menggunakan fm
pengubah format untuk menekan spasi ini:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;
Hasil:
Friday, 8 March 2030
Masalah terpecahkan.
Perhatikan bahwa ini juga memiliki manfaat sampingan dengan menekan spasi tambahan dari nama bulan.
Itu juga menekan nol di depan dari nomor hari.
Kita dapat menggunakan beberapa fm
pengubah untuk lebih spesifik tentang padding mana yang ingin kita tekan. Setiap fm
dalam model format kami mengaktifkan dan menonaktifkan mode pengisian.
Misalkan kita ingin menekan spasi tambahan dari nama hari dan bulan, tetapi kita ingin mempertahankan nol di depan pada nomor hari. Dalam hal ini kita dapat melakukan hal berikut:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;
Hasil:
Friday, 08 March 2030
Alasan kami menggunakan fm
ketiga (di depan MONTH
) karena fm
second kedua pengisi yang diaktifkan kembali untuk semua elemen format berikutnya, yang akan mengakibatkan spasi tambahan dipertahankan untuk bulan tersebut.
Inilah yang saya maksud:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;
Hasil:
Friday, 08 March 2030
Dalam hal ini, padding ditekan dari nama hari, dan kemudian diaktifkan kembali untuk nomor hari, bulan, dan tahun.
Untungnya, kita bisa menambahkan fm
sebanyak-banyaknya pengubah yang kita butuhkan untuk mendapatkan hasil yang diinginkan.