TO_DATE
используется для чтения имеющегося у вас формата даты, так как в вашем запросе он читается как
YYYY-MM-DD HH24:MI:SS
to_date(substr('2019-05-31
13:15:25.000000000', 1, 19), 'YYYY-.
MM-DD HH24:MI:SS') from dual
и предоставляет формат даты по умолчанию, а не формат метки времени по умолчанию вашей базы данных, чтобы манипулировать датой, которую вы можете использовать TO_CHAR(to_date(substr('2019-05-31
13:15:25.000000000', 1, 19), 'YYYY-.
MM-DD HH24:MI:SS'),"your_format")
from dual
или используйте to_timestamp (...)