Muitas vezes é necessário escrever o mês por extenso. Para tanto, no Oracle basta especificar a formatação adequada:
SQL> select to_char(sysdate, 'Month') from dual;
TO_CHAR(SYSDATE,'MONTH')
------------------------------------
January
Se o mês não estiver em uma data, mas em um campo numérico separado do dia e ano (má escolha, mas as vezes acontece), primeiro é necessário transformar em um valor do tipo Date.
SQL> select to_char(to_date(10, 'mm'), 'Month') from dual;
TO_CHAR(TO_DATE(10,'MM'),'MONTH')
------------------------------------
October
E se precisar do nome dos meses em português, basta trocar o atributo da sessão:
ALTER SESSION
SET NLS_DATE_LANGUAGE = Portuguese;
SQL> select to_char(sysdate, 'Month') from dual;
TO_CHAR(SYSDATE,'MONTH')
------------------------------------
Janeiro
Ótimas dicas, me ajudaram bastante!
ResponderExcluirTenta assim tbem:
ResponderExcluirselect to_char(sysdate,'MONTH','NLS_DATE_LANGUAGE= ''BRAZILIAN PORTUGUESE''') from dual
roda independente de como estiver a configuração do banco e converte em tempo de execução.
a dica do comentário acima resolveu melhor, parabéns pela dica.
ResponderExcluir