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.