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.