I Oracle Database, TO_CHAR(datetime)
tillåter oss att returnera ett datetime-värde, formaterat på ett sätt som vi anger.
En av sakerna vi kan göra är att returnera månadens namn från ett datum.
Månadens fullständiga namn
När det gäller att returnera månadsnamnet från ett datum, har vi möjlighet att få hela månadsnamnet eller dess förkortade version.
För att få hela månadens namn, använd MONTH
formatelement:
SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;
Resultat:
OCTOBER
Kort månadsnamn
För att få det förkortade månadsnamnet, använd MON
:
SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;
Resultat:
OCT
Kapitalisering
Vi kan använda versaler för att bestämma versaler för produktionen:
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
Språk
Månadens språk bestäms antingen uttryckligen med NLS_DATE_LANGUAGE
initialiseringsparameter eller implicit med NLS_LANGUAGE
initialiseringsparameter.
Vi kan uttryckligen ställa in värdet för NLS_LANGUAGE
parametern med ALTER SESSION
påstående. När vi gör detta ställer det också implicit in värdet för NLS_DATE_LANGUAGE
parameter.
Ställ dock in NLS_DATE_LANGUAGE
parametern ändrar inte värdet på NLS_LANGUAGE
parameter. Detta gör det möjligt för oss att ange ett annat språk för formatelement som returnerar stavade värden, om det behövs.
Här är ett exempel på hur du ställer in NLS_DATE_LANGUAGE
parametern till ett annat språk och får sedan månadsnamnet 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
Standardspråket kan åsidosättas på funktionsnivå med en tredje parameter som anger språket:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(
DATE '2037-10-03',
'Month',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Resultat:
Octubre
Det finns många fler formatelement tillgängliga för att formatera datetime-värden i Oracle. Se Lista över Datetime Format Elements i Oracle för en fullständig lista.