Страницы

Поиск по вопросам

воскресенье, 12 января 2020 г.

ORACLE. Необходимо обрезать вывод SQL запроса

#sql #oracle


Запрос 

select LTRIM(RUN_DURATION ) 
from SYS.USER_SCHEDULER_JOB_RUN_DETAILS 
WHERE LOG_ID = 218737;


возвращает:+000 00:01:27.
Мне нужны только секунды т.е. от 0 до 59 - два последних символа

Сам догадался только до TRIM 

select LTRIM(RUN_DURATION , '+000 00:00'))
from SYS.USER_SCHEDULER_JOB_RUN_DETAILS 
WHERE LOG_ID = 218737;


Но значение минут может быть разное и данный вариант мне не подходит.

Как отформатировать вывод до двух знаков справа?
    


Ответы

Ответ 1



select SUBSTR(RUN_DURATION,12) from SYS.USER_SCHEDULER_JOB_RUN_DETAILS ... Берем символы начиная с 12. Если надо вырезать из середины, то третьим параметром substr можно задавать длину.

Ответ 2



Думаю, правильнее было бы не обрезать, а воспользоваться extract'ором: select extract(second from run_duration) from SYS.DBA_SCHEDULER_JOB_RUN_DETAILS;

Комментариев нет:

Отправить комментарий