Di Oracle Database, TO_CHAR(datetime) fungsi mengonversi nilai waktu atau interval menjadi VARCHAR2 nilai dalam format yang ditentukan oleh format tanggal.
Sintaks
Sintaksnya seperti ini:
TO_CHAR({ datetime | interval } [, fmt [, 'nlsparam' ] ]) Dimana:
datetimedapat berupa nilaiDATE,TIMESTAMP,TIMESTAMPWITHTIMEZONE,TIMESTAMPWITHLOCALTIMEZONEtipe dataintervaldapat berupa nilaiINTERVALDAYTOSECOND, atauINTERVALYEARTOMONTHtipe datafmtadalah model format opsional yang menentukan bagaimana hasil harus diformat'nlsparam'adalah argumen opsional yang menentukan bahasa yang digunakan untuk menampilkan nama dan singkatan bulan dan hari.
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT TO_CHAR(DATE '2035-09-26', 'DY, DD MONTH YYYY')
FROM DUAL; Hasil:
WED, 26 SEPTEMBER 2035
Jadi, ia mengembalikan tanggal yang diberikan dalam argumen pertama, dalam format yang ditentukan oleh argumen kedua.
Argumen kedua menyediakan model format. Model format dapat terdiri dari satu atau lebih elemen format. Misalnya, DY adalah elemen format, seperti DD , MONTH , dll.
Lihat Daftar Lengkap Elemen Format Datetime ini di Oracle untuk daftar elemen format yang dapat digunakan untuk memformat nilai datetime dengan fungsi ini.
Format Default
Jika Anda menghilangkan fmt argumen, hasilnya akan dikonversi sebagai berikut:
DATEnilai dikonversi ke nilai dalam format tanggal default.TIMESTAMPdanTIMESTAMPWITHLOCALTIMEZONEnilai dikonversi ke nilai dalam format stempel waktu default.TIMESTAMPWITHTIMEZONEnilai dikonversi ke nilai dalam stempel waktu default dengan format zona waktu.- Nilai interval dikonversi ke representasi numerik literal interval.
Berikut ini contoh konversi DATE nilai tanpa menentukan format:
SELECT TO_CHAR(DATE '2035-09-26')
FROM DUAL; Hasil:
26/SEP/35
Dalam hal ini, format tanggal default sesi saya adalah DD/MON/RR , dan hasilnya mencerminkan itu. Saya tahu bahwa ini adalah format tanggal default sesi saya karena saya menanyakan V$NLS_PARAMETERS view, yang menunjukkan nilai parameter NLS saat ini.
Lihat Cara Memeriksa Nilai Parameter NLS jika Anda perlu memeriksanya.
Lihat juga Cara Mengubah Format Tanggal Sesi Anda jika Anda ingin mengubah format tanggal waktu default untuk sesi Anda saat ini.
Interval
Berikut adalah contoh yang menampilkan nilai interval dalam format default:
SELECT TO_CHAR(INTERVAL '25-2' YEAR TO MONTH)
FROM DUAL; Hasil:
+25-02
'nlsparam' Argumen
'nlsparam' argumen menentukan bahasa di mana nama bulan dan hari dan singkatan dikembalikan. Argumen ini dapat memiliki bentuk berikut:
'NLS_DATE_LANGUAGE = language' Contoh:
SELECT
TO_CHAR(
DATE '2035-09-26',
'DY, DD MONTH YYYY',
'NLS_DATE_LANGUAGE = SPANISH'
)
FROM DUAL; Hasil:
MIÉ, 26 SEPTIEMBRE 2035
Argumen Null
Melewati null menghasilkan null :
SET NULL 'null';
SELECT TO_CHAR(null)
FROM DUAL; Hasil:
null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null terjadi sebagai akibat dari SQL SELECT penyataan.
Namun, Anda dapat menggunakan SET NULL untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null harus dikembalikan.
Argumen Tidak Ada
Memanggil fungsi tanpa meneruskan argumen apa pun, menghasilkan kesalahan:
SELECT TO_CHAR()
FROM DUAL; Hasil:
Error starting at line : 1 in command - SELECT TO_CHAR() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Melewati terlalu banyak argumen juga menyebabkan kesalahan:
SELECT TO_CHAR(DATE '2035-09-26', 'yy', 'NLS_DATE_LANGUAGE = spanish', 'oops!' )
FROM DUAL; Hasil:
Error starting at line : 1 in command - SELECT TO_CHAR(DATE '2035-09-26', 'yy', 'NLS_DATE_LANGUAGE = spanish', 'oops!' ) FROM DUAL Error at Command Line : 1 Column : 72 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: