to_date() mengambil parameter string Anda, mencocokkannya dengan format yang Anda berikan di parameter kedua, dan membuat bidang tanggal darinya. Bidang tanggal tidak menggunakan format yang Anda berikan di parameter kedua - sebenarnya akan disimpan menggunakan beberapa representasi data internal yang tidak memiliki format sama sekali (angka, kemungkinan besar).
Untuk menampilkan format kembali dalam hasil dari bidang tanggal, Anda dapat:
- Minta klien yang mengeksekusi kueri menyetel parameter NLS (pada tingkat sesi) untuk menyediakan format yang dilokalkan, dengan
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
pernyataan), atau - Gunakan
to_char(..., 'YYYY-MM-DD')
di sekitar bidang Anda yang ada untuk mengubah tanggal kembali menjadi string yang diformat seperti yang Anda inginkan. Di mana Anda mengganti...
dengan definisi kolom Anda saat ini di pilih.
Pendekatan # 1 sudah terjadi, karena sudah ada set NLS_DATE_FORMAT yang menghasilkan format saat ini, tetapi dengan format yang tidak Anda inginkan, jadi jika Anda dapat mengontrolnya dan mengubahnya di sana, Anda dapat melakukannya cara. Jika Anda tidak bisa dan Anda harus memiliki format yang konsisten dengan cara lain, maka #2 bisa menjadi cara yang tepat.