Assumendo date_enter è una DATE campo:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate)
And CuRo.Date_Enter < trunc(sysdate) + 1;
Il trunc() la funzione elimina la parte temporale per impostazione predefinita, quindi trunc(sysdate) ti dà mezzanotte questa mattina.
Se in particolare vuoi restare con between e hai una DATE non un TIMESTAMP , potresti fare:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter between trunc(sysdate)
And trunc(sysdate) + interval '1' day - interval '1' second;
between è compreso, quindi se non ti prendi un secondo di pausa, potresti potenzialmente raccogliere i record da mezzanotte esatta di stasera; quindi questo genera l'ora 23:59:59 che stavi cercando nella tua query originale. Ma usando >= e < è un po' più chiaro ed esplicito, secondo me comunque.
Se sei sicuro di non poter comunque avere date successive a oggi, il limite superiore non aggiunge nulla e otterresti lo stesso risultato con solo:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate);
Non vuoi usare trunc o to_char su date_enter colonna però; l'utilizzo di qualsiasi funzione impedisce l'utilizzo di un indice su quella colonna, motivo per cui la tua query con to_char era troppo lento.