Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erhalten Sie den Monatsnamen aus einem Datum in Oracle

In Oracle Database der TO_CHAR(datetime) ermöglicht es uns, einen datetime-Wert zurückzugeben, der auf eine von uns festgelegte Weise formatiert ist.

Eines der Dinge, die wir tun können, ist den Monatsnamen von einem Datum zurückzugeben.

Vollständiger Monatsname

Wenn es darum geht, den Monatsnamen von einem Datum zurückzugeben, haben wir die Möglichkeit, den vollständigen Monatsnamen oder seine abgekürzte Version zu erhalten.

Um den vollständigen Monatsnamen zu erhalten, verwenden Sie den MONTH Formatelement:

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

Ergebnis:

OCTOBER

Kurzer Monatsname

Um den abgekürzten Monatsnamen zu erhalten, verwenden Sie MON :

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

Ergebnis:

OCT

Großschreibung

Wir können die Großschreibung verwenden, um die Großschreibung der Ausgabe zu bestimmen:

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;

Ergebnis:

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

Sprache

Die Sprache des Monatsnamens wird entweder explizit mit dem NLS_DATE_LANGUAGE festgelegt Initialisierungsparameter oder implizit mit NLS_LANGUAGE Initialisierungsparameter.

Wir können den Wert von NLS_LANGUAGE explizit festlegen Parameter mit dem ALTER SESSION Erklärung. Wenn wir dies tun, wird implizit auch der Wert von NLS_DATE_LANGUAGE festgelegt Parameter.

Setzen Sie jedoch NLS_DATE_LANGUAGE Der Parameter ändert nicht den Wert von NLS_LANGUAGE Parameter. Dadurch können wir bei Bedarf eine andere Sprache für Formatelemente angeben, die buchstabierte Werte zurückgeben.

Hier ist ein Beispiel für die Einstellung von NLS_DATE_LANGUAGE Parameter in eine andere Sprache umwandeln und dann wieder den Monatsnamen abrufen:

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;

Ergebnis:

   Full Month Name    Short Month Name 
__________________ ___________________ 
Oktober            Okt                

Die Standardsprache kann auf Funktionsebene mit einem dritten Parameter überschrieben werden, der die Sprache angibt:

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

Ergebnis:

Octubre

Es stehen viele weitere Formatelemente zum Formatieren von Datetime-Werten in Oracle zur Verfügung. Eine vollständige Liste finden Sie unter Liste der Datetime-Formatelemente in Oracle.