Ако приемем date_enter е DATE поле:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate)
And CuRo.Date_Enter < trunc(sysdate) + 1;
trunc() функцията премахва частта от времето по подразбиране, така че trunc(sysdate) ви дава полунощ тази сутрин.
Ако особено искате да се придържате към between и имате DATE не е TIMESTAMP , можете да направите:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter between trunc(sysdate)
And trunc(sysdate) + interval '1' day - interval '1' second;
between включва, така че ако не си вземете втора почивка, потенциално бихте взели записи точно от полунощ тази вечер; така че това генерира времето 23:59:59, което сте търсили в първоначалната си заявка. Но използвайки >= и < според мен е малко по-ясен и ясен.
Ако сте сигурни, че така или иначе не можете да имате дати по-късно от днес, горната граница всъщност не добавя нищо и ще получите същия резултат само с:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate);
Не искате да използвате trunc или to_char на date_enter колона все пак; използването на която и да е функция предотвратява използването на индекс в тази колона, поради което заявката ви с to_char беше твърде бавен.