Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara Mendapatkan Abad dari Tanggal di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyedia tidak kompatibel dengan versi kesalahan klien Oracle saat menggunakan Oracle.DataClient

  2. Fungsi DATEDIFF di Oracle

  3. Mereferensikan tipe yang ditentukan pengguna Oracle melalui DBLINK?

  4. InMemory DUPLICATE Kebingungan di Oracle RAC

  5. Cara menginstal ODP.NET 2.111 dan ODP.NET 4.112 di mesin yang sama secara berdampingan sementara keduanya menunjuk ke server database yang sama