Несмотря на документированное TO_CHAR
, похоже, не работает со значениями INTERVAL
. Выходной формат INTERVAL всегда фиксированный, т.е. он не зависит от текущих настроек NLS сеанса пользователя, поэтому вы можете использовать RegExp.
Попробуйте это:
REGEXP_REPLACE(REGEXP_SUBSTR(INTERVAL_COL, '\d{2}:\d{2}:\d{2}'), ':(\d{2})$', '.\1')
Обратите внимание, если интервалы могут превышать 24 часа, тогда результат будет неправильным (то же самое относится к решениям типа TO_CHAR(CAST((TRUNC(SYSTIMESTAMP)+INTERVAL_COL) AS DATE), 'HH24:MI.SS')
)