Как получить двойные кавычки в to_char() при преобразовании даты в строку?

Рейтинг: 1Ответов: 1Опубликовано: 10.07.2023

При запросе:

SELECT to_char(sysdate, 'YYYY-"MON"-DD') FROM dual;

Я получу:

2023-MON-10

Но я хочу получить:

2023-"JUL"-10

Как мне экранировать двойные кавычки в формате to_char()?

Ответы

▲ 2Принят

Внутри формата двойные кавычки всегда будут иметь "магический" смысл, т.к. эскейп-последовательностей там нет.

Можно подставить другой символ пунктуации, а потом его заменить на кавычки:

SELECT replace(to_char(sysdate, 'YYYY-@MON@-DD'), '@', '"') FROM dual;

А можно разбить формат на несколько кусков и потом сконкатенировать кавычки между ними:

SELECT to_char(sysdate, 'YYYY')||'-"'||to_char(sysdate, 'MON')||'"-'||to_char(sysdate, 'DD') FROM dual;