DATE
adalah tipe bawaan di Oracle, yang direpresentasikan dengan cara yang tetap dan Anda tidak memiliki kendali atasnya.
Jadi:
Saya ingin memasukkan [...] sebagai 08/01/2011 12:00:00 AM
Di atas tidak masuk akal. Anda tidak memasukkan string, Anda memasukkan tanggal.
Format hanya berguna jika Anda ingin:
- untuk mengonversi string menjadi representasi internal tanggal dengan
TO_DATE
(format mask:cara mengurai string); - untuk mengonversi representasi internal tanggal menjadi string dengan
TO_CHAR
(format mask:cara menampilkan tanggal).
Jadi pada dasarnya, dalam contoh Anda, Anda mengambil DATE, Anda mengubahnya menjadi STRING dengan beberapa format, dan mengonversinya kembali ke DATE dengan format yang sama. Ini adalah larangan.
Sekarang, apa yang ditampilkan klien Anda:ini karena Klien Oracle Anda tidak akan menampilkan bidang TANGGAL secara langsung dan lapisan NLS akan mengonversi bidang TANGGAL apa pun yang dipilih. Jadi itu tergantung pada lokal Anda secara default.
Yang Anda inginkan adalah SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
yang secara eksplisit akan melakukan konversi dan mengembalikan string.
Dan ketika Anda ingin memasukkan tanggal dalam database, Anda dapat menggunakan TO_DATE
atau literal tanggal.