Формат даты в оракуле - PullRequest
2 голосов
/ 14 сентября 2009

Hai,

Из базы данных я хочу взять только месяц из полного формата даты. Принимая, я получаю месяц как 08 за август и 09 за сентябрь и т. Д. Но мне нужно получить месяц как 8 за август и 9 за сентябрь и т. д.

Как я могу это сделать? Кто-нибудь может мне помочь?

Ответы [ 4 ]

5 голосов
/ 14 сентября 2009
  select to_number(to_char(sysdate, 'mm')) from dual
2 голосов
/ 14 сентября 2009

Попробуйте это, делает это одним вызовом функции:

select to_char(sysdate, 'FMMM') from dual;

См. Модификаторы модели формата для получения подробной информации о синтаксисе 'FM'.

2 голосов
/ 14 сентября 2009

Этот запрос возвращает 09:

select to_char(sysdate, 'MM') from dual

Этот запрос возвращает 9:

select ltrim(to_char(sysdate, 'MM'),'0') from dual
0 голосов
/ 16 августа 2011

Одна важная вещь, которую нужно знать о FM-операторе, это то, что он в основном функционирует как «тумблер». Думайте об элементе FM как о префиксе, который действует на полноту элемента datetime.

Таким образом, в этом случае, когда вам нужен только месяц, FMMM, по сути, говорит: «верните MM (месяц между 1 и 12), но оставьте начальные нули».

Если, например, вы использовали:

select to_char(sysdate, 'FMMMDD') from dual;

это будет интерпретироваться как «вернуть MMDD (месяц от 1 до 12, день от 1 до 31), но пропустить ведущие нули и от месяца, и от дня. Если ваша дата была 8 августа, например,

select to_char(sysdate, 'MMMDD') from dual;

вернется

0808

добавление оператора FM

select to_char(sysdate, 'FMMMDD') from dual;

вернется

88

обратите внимание, как FM работает на элементе datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...