Dengan Oracle Database, kita dapat menggunakan TO_CHAR(datetime)
berfungsi untuk mengembalikan abad dari nilai datetime.
Untuk melakukan ini, kita dapat menggunakan CC
elemen format, atau SCC
elemen format. Kita dapat menggabungkan ini dengan elemen format lain untuk melakukan hal-hal seperti, menampilkan nomor urut, mengeja abad, dll.
Contoh
Berikut adalah contoh yang menggunakan CC
elemen format untuk mengembalikan abad dari nilai tanggal:
SELECT TO_CHAR(DATE '2030-12-30', 'CC')
FROM DUAL;
Hasil:
21
Berabad-abad Negatif
Kita dapat menggunakan SCC
elemen format untuk menyertakan tanda minus saat melewati tanggal negatif:
SELECT TO_CHAR(DATE '-2030-12-30', 'SCC')
FROM DUAL;
Hasil:
-21
Bilangan Ordinal
Kita dapat menambahkan TH
elemen format untuk mengembalikan nomor urut abad.
SELECT TO_CHAR(DATE '2030-12-30', 'CCTH')
FROM DUAL;
Hasil:
21ST
Kami juga dapat menambahkan teks arbitrer untuk menambahkan kata “Century”:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTH "Century"')
FROM DUAL;
Hasil:
21ST Century
Perhatikan bahwa teks diapit oleh tanda kutip ganda.
Kita dapat menggunakan kapitalisasi sesuai kebutuhan:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;
Hasil:
21ST Century
Perhatikan bahwa saya hanya menggunakan huruf kapital untuk karakter pertama dalam model format. Maksud saya adalah saya menggunakan Ccth
bukannya CCth
. Meskipun Anda mungkin berpikir bahwa CCth
harus menghasilkan angka urut huruf kecil, bukan itu cara kerjanya. Inilah yang terjadi jika kita melakukannya:
SELECT TO_CHAR(DATE '2030-12-30', 'CCth "Century"')
FROM DUAL;
Hasil:
21ST Century
Pada dasarnya, ketika dua karakter pertama dari model format adalah huruf besar, hasilnya adalah huruf besar. Oleh karena itu, untuk menghasilkan case judul, huruf kapital hanya pada karakter pertama dari model format.
Ejaan Abad
Kita dapat menambahkan SP
elemen format agar abad dieja:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;
Hasil:
TWENTY-FIRST Century
Dan kita dapat menggunakan kapitalisasi sesuai kebutuhan:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;
Hasil:
Twenty-First Century
Kita dapat menghilangkan TH
penentu format jika kita tidak menginginkan nomor urut:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;
Hasil:
Twenty-One
Abad ke-20 vs. Abad ke-21
Aturan berikut berlaku terkait kapan suatu tanggal dianggap berada di abad ke-20 versus abad ke-21.
- Jika 2 digit terakhir dari 4 digit tahun antara 01 dan 99 (termasuk), maka abad tersebut lebih besar satu dari 2 digit pertama tahun tersebut.
- Jika 2 digit terakhir dari 4 digit tahun adalah 00, maka abadnya sama dengan 2 digit pertama tahun tersebut.
Konsep yang sama berlaku untuk abad lain, seperti abad ke-13, abad ke-30, dll.
Contoh:
SELECT
TO_CHAR(DATE '1999-12-30', 'CC') AS "1999",
TO_CHAR(DATE '2000-12-30', 'CC') AS "2000",
TO_CHAR(DATE '1299-12-30', 'CC') AS "1299",
TO_CHAR(DATE '1300-12-30', 'CC') AS "1300",
TO_CHAR(DATE '2999-12-30', 'CC') AS "2999",
TO_CHAR(DATE '3000-12-30', 'CC') AS "3000"
FROM DUAL;
Hasil:
1999 2000 1299 1300 2999 3000 _______ _______ _______ _______ _______ _______ 20 20 13 13 30 30
Ada banyak lagi elemen format yang tersedia untuk memformat nilai datetime di Oracle. Lihat Daftar Elemen Format Datetime di Oracle untuk daftar lengkapnya.