Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter o nome do mês de uma data no Oracle


No Oracle Database, o TO_CHAR(datetime) nos permite retornar um valor de data e hora, formatado da maneira que especificamos.

Uma das coisas que podemos fazer é retornar o nome do mês de uma data.

Nome completo do mês


Quando se trata de retornar o nome do mês de uma data, temos a opção de obter o nome completo do mês ou sua versão abreviada.

Para obter o nome completo do mês, use o MONTH elemento de formato:
SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;

Resultado:
OCTOBER

Nome abreviado do mês


Para obter o nome do mês abreviado, use MON :
SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;

Resultado:
OCTOBER

Capitalização


Podemos usar a capitalização para determinar a capitalização da saída:
SELECT 
    TO_CHAR(DATE '2035-10-03', 'Month') AS "Month",
    TO_CHAR(DATE '2035-10-03', 'month') AS "month",
    TO_CHAR(DATE '2035-10-03', 'Mon') AS "Mon",
    TO_CHAR(DATE '2035-10-03', 'mon') AS "mon"
FROM DUAL;

Resultado:
       Month        month    Mon    mon 
____________ ____________ ______ ______ 
October      october      Oct    oct   

Idioma


O idioma do nome do mês é determinado explicitamente com o NLS_DATE_LANGUAGE parâmetro de inicialização ou implicitamente com o NLS_LANGUAGE parâmetro de inicialização.

Podemos definir explicitamente o valor do NLS_LANGUAGE parâmetro com o ALTER SESSION demonstração. Quando fazemos isso, ele também define implicitamente o valor do NLS_DATE_LANGUAGE parâmetro.

No entanto, definir o NLS_DATE_LANGUAGE parâmetro não altera o valor do NLS_LANGUAGE parâmetro. Isso nos permite especificar um idioma diferente para elementos de formato que retornam valores ortográficos, se necessário.

Aqui está um exemplo de configuração do NLS_DATE_LANGUAGE parâmetro para um idioma diferente, obtendo o nome do mês novamente:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(DATE '2037-10-03', 'Month') AS "Full Month Name",
    TO_CHAR(DATE '2037-10-03', 'Mon') AS "Short Month Name"
FROM DUAL;

Resultado:
   Full Month Name    Short Month Name 
__________________ ___________________ 
Oktober            Okt                

O idioma padrão pode ser substituído no nível da função com um terceiro parâmetro que especifica o idioma:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(
        DATE '2037-10-03', 
        'Month', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Resultado:
Octubre

Há muitos outros elementos de formato disponíveis para formatar valores de data e hora no Oracle. Consulte Lista de elementos de formato de data e hora no Oracle para obter uma lista completa.