Dengan asumsi date_enter adalah DATE bidang:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate)
And CuRo.Date_Enter < trunc(sysdate) + 1;
trunc() fungsi menghapus bagian waktu secara default, jadi trunc(sysdate) memberi Anda tengah malam pagi ini.
Jika Anda ingin tetap menggunakan between , dan Anda memiliki DATE bukan TIMESTAMP , Anda dapat melakukan:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter between trunc(sysdate)
And trunc(sysdate) + interval '1' day - interval '1' second;
between inklusif, jadi jika Anda tidak mengambil waktu sedetik pun maka Anda berpotensi mengambil rekaman tepat tengah malam malam ini; jadi ini menghasilkan waktu 23:59:59 yang Anda cari dalam kueri asli Anda. Tetapi menggunakan >= dan < sedikit lebih jelas dan lebih eksplisit, menurut saya.
Jika Anda yakin tidak dapat memiliki tanggal lebih dari hari ini, batas atas tidak benar-benar menambahkan apa pun, dan Anda akan mendapatkan hasil yang sama hanya dengan:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate);
Anda tidak ingin menggunakan trunc atau to_char pada date_enter kolom meskipun; menggunakan fungsi apa pun mencegah indeks pada kolom itu digunakan, itulah sebabnya kueri Anda dengan to_char terlalu lambat.