Почему вы конвертируете строку символов в строку символов? Вы можете сделать:
trunc(to_date(datefield1, 'mm/dd/yyyy hh24:mi:ss'))
between trunc(to_date('05/18/2016 08:57', 'mm/dd/yyyy hh24:mi:ss'), 'mm/dd/yyyy,hh24:mi:ss') and
trunc(to_date('05/20/2016 08:57', 'mm/dd/yyyy hh24:mi:ss'), 'mm/dd/yyyy hh24:mi:ss');
Очень странно иметь hh24:mi:ss
, когда у самой строки нет секунд. Но Oracle это позволяет.
Тем не менее, я бы написал логику как:
datefield1 >= date '2016-05-18' and
datefield1 < date '2016-05-21'