TO_DATE('08:35:42 AM','HH:MI:SS PM')
Powodem, dla którego to nie działa, jest to, że nie jest to pełna data. Nawet jeśli używasz to_date('07/12/2011','MM/DD/RRRR'), Oracle przechowuje datę i czas, ale wszystkie składniki czasu ustawia na ZERO. Tak więc rzeczywista przechowywana data to 07/12/2011 HH:MI:SS
Jeśli chcesz osobno przechowywać składnik czasu, powinno to być pole varchar i musisz dodać je do części daty, aby uzyskać pełną datę. Przykład...
Select to_date(
to_char(date_field_stored_as_date,'DD-MON-YYYY') ||
' ' ||
to_char(time_field_stored_as_varchar),
'DD-MON-YYYY HH24:MI:SS'
)