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

Sådan får du månedens navn fra en dato i Oracle

I Oracle Database er TO_CHAR(datetime) giver os mulighed for at returnere en datetime-værdi, formateret på en måde, som vi angiver.

En af de ting, vi kan gøre, er at returnere månedsnavnet fra en dato.

Fuldt måneds navn

Når det kommer til at returnere månedsnavnet fra en dato, har vi mulighed for at få det fulde månedsnavn eller dets forkortede version.

For at få det fulde månedsnavn skal du bruge MONTH formatelement:

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

Resultat:

OCTOBER

Kort månedsnavn

Brug MON for at få det forkortede månedsnavn :

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

Resultat:

OCT

Kapitalisering

Vi kan bruge store bogstaver til at bestemme outputtet med store bogstaver:

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;

Resultat:

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

Sprog

Sproget i månedens navn bestemmes enten eksplicit med NLS_DATE_LANGUAGE initialiseringsparameter eller implicit med NLS_LANGUAGE initialiseringsparameter.

Vi kan udtrykkeligt indstille værdien af ​​NLS_LANGUAGE parameter med ALTER SESSION udmelding. Når vi gør dette, sætter det også implicit værdien af ​​NLS_DATE_LANGUAGE parameter.

Indstilling af NLS_DATE_LANGUAGE parameter ændrer ikke værdien af ​​NLS_LANGUAGE parameter. Dette gør det muligt for os at angive et andet sprog for formatelementer, der returnerer staveværdier, hvis det kræves.

Her er et eksempel på indstilling af NLS_DATE_LANGUAGE parameter til et andet sprog, og få derefter månedsnavnet igen:

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;

Resultat:

   Full Month Name    Short Month Name 
__________________ ___________________ 
Oktober            Okt                

Standardsproget kan tilsidesættes på funktionsniveau med en tredje parameter, der specificerer sproget:

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

Resultat:

Octubre

Der er mange flere formatelementer tilgængelige til formatering af datetime-værdier i Oracle. Se Liste over DateTime Format Elements i Oracle for en komplet liste.


  1. Sådan finder du alle overtrædelser af begrænsninger i en SQL Server-database

  2. MySQL Bestil før gruppe efter

  3. hvordan man tildeler cte-værdi til variabel

  4. SQL er lig med (=) operatør for begyndere