to_date()
mengembalikan tanggal pada 00:00:00, jadi Anda perlu "menghapus" menit dari tanggal yang Anda bandingkan dengan:
select *
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')
Anda mungkin ingin membuat indeks pada trunc(es_date)
jika itu adalah sesuatu yang Anda lakukan secara teratur.
'27-APR-12'
harfiah bisa gagal dengan sangat mudah jika format tanggal default diubah menjadi sesuatu yang berbeda. Jadi pastikan Anda selalu menggunakan to_date()
dengan format mask yang tepat (atau literal ANSI:date '2012-04-27'
)
Meskipun Anda melakukannya dengan benar dalam menggunakan to_date()
dan tidak bergantung pada konversi tipe data implisit, penggunaan to_date() Anda masih memiliki kendala kecil karena format 'dd-MON-yy'
.
Dengan pengaturan bahasa yang berbeda ini mungkin dengan mudah gagal mis. TO_DATE('27-MAY-12','dd-MON-yy')
ketika NLS_LANG disetel ke bahasa Jerman. Hindari apa pun dalam format yang mungkin berbeda dalam bahasa yang berbeda. Menggunakan tahun empat digit dan hanya angka mis. 'dd-mm-yyyy'
atau 'yyyy-mm-dd'