Манипулирование с выводом SQL-запроса - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу написать запрос, который возвращает месяц только в 3 символа, но первый символ должен быть прописным, а остальные не прописными.Например, DEC должно быть (Dec) или JAN (Jan).

select substr(sysdate,4,3) from dual;

Код SQL выше возвращает месяц, но с заглавной буквы "DEC", поэтому я хочу выводить как "Dec".

Кто-нибудь знает, как этого добиться?

Спасибо

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

это действительно будет работать, если использовать дополнительную функцию, которая инициализируется заглавными буквами:

select initcap(substr(sysdate,4,3)) from dual;
0 голосов
/ 03 декабря 2018

Нет необходимости в манипуляциях, как указано в предыдущих ответах.

Вы можете просто написать это:

SELECT TO_CHAR (SYSDATE, 'Mon', 'nls_date_language=American') FROM DUAL;

Если вы передадите 'Месяц' в качестве второго параметра, который выполучит «декабрь», если вы пройдете «месяц», вы получите «декабрь», а если вы сдадите «понедельник», вы получите «декабрь», как вы и просили.

Я надеюсь, что япомог!

0 голосов
/ 03 декабря 2018

Вы можете попробовать использовать substr с функцией to_char.

select substr(to_char(sysdate, 'Month', 'nls_date_language=American') ,0,3)  from dual

c # online

Примечание

используйте nls_date_language=American для установки культуры в функции to_char.

...