Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere il nome del giorno da una data in Oracle

Con Oracle Database, possiamo utilizzare il TO_CHAR(datetime) funzione per restituire un valore datetime, formattato in un modo da noi specificato.

Possiamo usare questa funzione per restituire il nome del giorno da una data (così come qualsiasi altra parte del valore datetime).

Nome per l'intera giornata

Quando si tratta di restituire il nome del giorno da una data, abbiamo la possibilità di ottenere il nome completo del giorno o la sua versione abbreviata.

Per ottenere il nome completo del giorno, il DAY format element fa il trucco:

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Risultato:

SATURDAY

Nome breve del giorno

Per ottenere il nome abbreviato del giorno, usa DY :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Risultato:

SAT

Maiuscole

Possiamo usare le maiuscole se lo desideriamo. Questo determina la capitalizzazione dell'output:

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;

Risultato:

         Day          day     Dy     dy 
____________ ____________ ______ ______ 
Saturday     saturday     Sat    sat    

Lingua

La lingua del nome del giorno è determinata in modo esplicito con il NLS_DATE_LANGUAGE parametro di inizializzazione o implicitamente con NLS_LANGUAGE parametro di inizializzazione.

Possiamo impostare esplicitamente il valore di NLS_LANGUAGE parametro con il ALTER SESSION dichiarazione. Quando lo facciamo, imposta anche implicitamente il valore di NLS_DATE_LANGUAGE parametro.

Tuttavia, impostando il NLS_DATE_LANGUAGE parametro non cambia il valore di il NLS_LANGUAGE parametro. Questo ci consente di specificare una lingua diversa per elementi di formato che restituiscono valori scritti, se necessario.

Ecco un esempio di impostazione di il NLS_DATE_LANGUAGE parametro in una lingua diversa:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';

Risultato:

Session altered.

Ora, quando restituiamo il nome del giorno da una data, viene restituito nella lingua che abbiamo appena specificato:

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;

Risultato:

   Full Day Name    Short Day Name 
________________ _________________ 
SAMSTAG          SA               

La lingua predefinita può essere sovrascritta a livello di funzione con un terzo parametro che specifica la lingua:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(
        DATE '2037-10-03', 
        'Day', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Risultato:

Sábado

Sono disponibili molti altri elementi di formato per la formattazione dei valori datetime in Oracle. Per un elenco completo, vedere Elenco degli elementi del formato DateTime in Oracle.