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

Come ottenere il nome del mese da una data in Oracle

In Oracle Database, il TO_CHAR(datetime) ci consente di restituire un valore datetime, formattato in un modo da noi specificato.

Una delle cose che possiamo fare è restituire il nome del mese da una data.

Nome per l'intero mese

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

Per ottenere il nome completo del mese, utilizza il MONTH elemento di formato:

SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;

Risultato:

OCTOBER

Nome breve del mese

Per ottenere il nome abbreviato del mese, usa MON :

SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;

Risultato:

OCTOBER

Maiuscole

Possiamo usare la capitalizzazione per determinare la capitalizzazione dell'output:

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;

Risultato:

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

Lingua

La lingua del nome del mese è determinata esplicitamente con 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 NLS_LANGUAGE parametro. Questo ci consente di specificare una lingua diversa per gli elementi di formato che restituiscono valori ortografici, se necessario.

Ecco un esempio di impostazione di NLS_DATE_LANGUAGE parametro in una lingua diversa, quindi ottenendo nuovamente il nome del mese:

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;

Risultato:

   Full Month Name    Short Month Name 
__________________ ___________________ 
Oktober            Okt                

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', 
        'Month', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Risultato:

Octubre

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.