Com o Oracle Database, podemos usar o
TO_CHAR(datetime)
função para retornar um valor de data e hora, formatado da maneira que especificamos. Podemos usar esta função para retornar o nome do dia de uma data (assim como quaisquer outras partes do valor datetime).
Nome do dia completo
Quando se trata de retornar o nome do dia de uma data, temos a opção de obter o nome completo do dia ou sua versão abreviada.
Para obter o nome completo do dia, o
DAY
elemento de formato faz o truque:SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Resultado:
SATURDAY
Nome do dia curto
Para obter o nome do dia abreviado, use
DY
:SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Resultado:
SAT
Capitalização
Podemos usar maiúsculas se desejarmos. Isso determina a capitalização da saída:
SELECT
TO_CHAR(DATE '2037-10-03', 'Day') AS "Day",
TO_CHAR(DATE '2037-10-03', 'day') AS "day",
TO_CHAR(DATE '2037-10-03', 'Dy') AS "Dy",
TO_CHAR(DATE '2037-10-03', 'dy') AS "dy"
FROM DUAL;
Resultado:
Day day Dy dy ____________ ____________ ______ ______ Saturday saturday Sat sat
Idioma
O idioma do nome do dia é 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 de o 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 o
NLS_DATE_LANGUAGE
parâmetro para um idioma diferente:ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
Resultado:
Session altered.
Agora, quando retornamos o nome do dia de uma data, ele é retornado no idioma que acabamos de especificar:
SELECT
TO_CHAR(DATE '2037-10-03', 'DAY') AS "Full Day Name",
TO_CHAR(DATE '2037-10-03', 'DY') AS "Short Day Name"
FROM DUAL;
Resultado:
Full Day Name Short Day Name ________________ _________________ SAMSTAG SA
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',
'Day',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Resultado:
Sábado
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.