Date di Oracle, Simple but Dangerous

Leave a Comment
DATE atau tanggal adalah salah satu tipe data di Oracle, hampir sama dengan tipe data yang lain seperti varchar, varchar2, atau number. Berbeda dengan DBMS lainnya, Oracle menyimpan tanggal dalam format lengkap (seperti datetime di MySQL) yaitu Hari, Bulan, Tahun, Jam, Menit, dan Detik. 
Kalau dilihat dari judul di atas, agak lebay juga sih, masak gegara tanggal bisa membahayakan sih?apa bahayanya?toh cuman di-select atau jadi parameter tinggal panggil nama kolomnya aja kan, di mana bahayanya? (-_-)a... Naaaaah, itu yang terjadi pada ayas (Saya) beberapa hari belakangan. Ayas udah ngerasa query yang ayas bikin udah keren dan ngakomodir beberapa kebutuhan, utamanya yg terkait dengan masalah periode tanggal dan sebagai sebagainya.
Langsung ke kasus aja ya, ayas permisalkan ada satu tabel yang memiliki 2 kolom KODE dan TGL.Studi kasusnya adalah kita butuh untuk menampilan KODE dengan tanggal sebagai range. Kita bikin dulu tabel yang mengandung 2 kolom, kode dan tanggal.



Berikut adalah datanya

Kemudian jalankan query :

hasil eksekusi query adalah :


Query kedua :

 
hasil eksekusi query adalah :

Nah dari 2 query ada perbedaan yang mendasar. Untuk query 1 data bisa tampil karena tipe data yang dibandingkan sama, yaitu Date, sedangkan untuk query 2, data yang dibandingkan tidak sama, karena kolom TGL pada query ini, dikonversi lagi ke tipe date sedangkan untuk parameter-nya hanya dikonversi sekali (ini opini ayas lhoo :p). Jadi kemungkinan karena dikonversi 2 kali maka data di query 2 tidak tampil, padahal maksud dan tujuan-nya sama dengan yang pertama.
Itu aja sedikit share dari  ayas, semoga bisa manfaat, dan minimal jadi pengingat buat ayas pribadi, at least meminjam paribasan dari cak Kartolo, Kemanten nguntal klopo, Cukup Semanten pitutur kawulo..Cukup Sekian dan Terima Kasih!

0 komentar:

Post a Comment

.