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.