Di Oracle, sebuah DATE
selalu memiliki komponen waktu. Klien Anda mungkin atau mungkin tidak menampilkan komponen waktu, tetapi tetap ada saat Anda mencoba melakukan perbandingan kesetaraan. Anda juga selalu ingin membandingkan tanggal dengan tanggal daripada string yang menggunakan NLS_DATE_FORMAT
sesi saat ini untuk melakukan konversi implisit sehingga membuatnya agak rapuh. Itu akan melibatkan literal tanggal ANSI atau to_date
eksplisit panggilan
Anda dapat menggunakan TRUNC
berfungsi untuk memotong DATE
sampai tengah malam
SELECT *
FROM porder
WHERE trunc(odate) = date '2013-10-04'
Atau Anda dapat melakukan perbandingan rentang (yang akan lebih efisien jika Anda dapat memanfaatkan indeks pada odate
)
SELECT *
FROM porder
WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
AND odate < to_date( '05-Oct-2013', 'DD-Mon-YYYY' );