Di Oracle Database, Anda dapat menggunakan fm
(mode isi) pengubah format untuk menekan nol di depan yang mungkin diterapkan pada tanggal. Pengubah format ini menekan padding, yang mencakup nol di depan dan di akhir.
Untuk menggunakan fm
pengubah format, sertakan dalam model format Anda saat menentukan bagaimana tanggal harus diformat. Misalnya saat menggunakan TO_CHAR()
berfungsi untuk memformat tanggal, atau dalam parameter NLS seperti NLS_DATE_FORMAT
parameter saat mengatur format tanggal untuk sesi Anda saat ini.
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT
TO_CHAR(DATE '2009-08-01', 'DD-MM-YY') AS "Without fm",
TO_CHAR(DATE '2009-08-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;
Hasil:
Without fm With fm _____________ __________ 01-08-09 1-8-9
Kita dapat melihat bahwa hasil aslinya (tanpa fm
pengubah) mengembalikan nol di depan untuk semua bagian tanggal. Dalam hal ini, fm
pengubah menekan nol di depan pada ketiga bagian tanggal.
fm
pengubah hanya memengaruhi hasil jika benar-benar ada nol di depan dalam hasil.
Berikut adalah tanggal yang menyertakan bagian tanggal yang terdiri dari dua digit, dan karena itu tidak memiliki angka nol di depan:
SELECT
TO_CHAR(DATE '2029-12-01', 'DD-MM-YY') AS "Without fm",
TO_CHAR(DATE '2029-12-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;
Hasil:
Without fm With fm _____________ __________ 01-12-29 1-12-29
Cara Menentukan Mode Isi Hanya pada Beberapa Bagian Tanggal
Contoh di atas menekan nol di depan pada semua bagian tanggal. Angka nol di depan dihilangkan dari hari, bulan, dan tahun. Ini karena, ketika kita menempatkan satu fm
di awal model format, itu menekan semua nol terdepan berikutnya dalam hasil.
Misalkan kita hanya ingin menghapus nol di depan dari hari dan bulan, tetapi mempertahankannya pada tahun. Dalam hal ini, kita dapat melakukan hal berikut:
SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-MM-fmYY')
FROM DUAL;
Hasil:
1-8-09
fm
pengubah pada dasarnya bekerja seperti sakelar. Saat Anda memasukkan satu, itu menekan nol sampai akhir, atau sampai menemukan fm
lain pengubah. Jika ada fm
kedua pengubah, maka nol di depan tidak ditekan di luar titik itu, dan seterusnya.
Inilah yang terjadi ketika kami menyertakan tiga fm
pengubah – satu sebelum setiap bagian tanggal:
SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-fmMM-fmYY')
FROM DUAL;
Hasil:
1-08-9
Jadi dalam hal ini, fm
pengubah pada dasarnya diaktifkan, lalu dinonaktifkan, lalu diaktifkan lagi.
Parameter NLS
Anda juga dapat menentukan mode pengisian di parameter NLS Anda, seperti NLS_DATE_FORMAT
parameter saat menyetel format tanggal untuk sesi Anda saat ini.
Contoh:
ALTER SESSION SET NLS_DATE_FORMAT = 'fmDD-MM-fmRR';
SELECT DATE '2009-08-07' FROM DUAL;
Hasil:
7-8-09