мне кажется, что клиент постоянно принимает что-то, но как это исправить я не знаю
select extract(hour from (sysdate - to_timestamp('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS')))
from dual
-- если колонка типа DATE - через CAST
select extract(hour from (sysdate - cast(to_date('03.10.2004 17:03:28', 'DD.MM.YYYY HH24:MI:SS') as timestamp) ))
from dual