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

Como obter o nome do dia de uma data no Oracle


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.