Med Oracle Database kan vi bruge TO_CHAR(datetime)
funktion til at returnere en datetime-værdi, formateret på en måde, som vi angiver.
Vi kan bruge denne funktion til at returnere dagsnavnet fra en dato (såvel som andre dele af datetime-værdien).
Fulddagsnavn
Når det kommer til at returnere dagsnavnet fra en dato, har vi mulighed for at få hele dagsnavnet eller dets forkortede version.
For at få hele dagens navn, DAY
formatelementet gør tricket:
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Resultat:
SATURDAY
Navn på kort dag
Brug DY
for at få det forkortede dagnavn :
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Resultat:
SAT
Kapitalisering
Vi kan bruge store bogstaver, hvis vi ønsker det. Dette bestemmer kapitaliseringen af output:
SELECT
TO_CHAR(DATE '2037-10-03', 'Day') AS "Day",
TO_CHAR(DATE '2037-10-03', 'day') AS "day",
TO_CHAR(DATE '2037-10-03', 'Dy') AS "Dy",
TO_CHAR(DATE '2037-10-03', 'dy') AS "dy"
FROM DUAL;
Resultat:
Day day Dy dy ____________ ____________ ______ ______ Saturday saturday Sat sat
Sprog
Sproget for dagsnavnet 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 stavede værdier, hvis det kræves.
Her er et eksempel på indstilling af NLS_DATE_LANGUAGE
parameter til et andet sprog:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
Resultat:
Session altered.
Når vi nu returnerer dagsnavnet fra en dato, returneres det på det sprog, vi lige har angivet:
SELECT
TO_CHAR(DATE '2037-10-03', 'DAY') AS "Full Day Name",
TO_CHAR(DATE '2037-10-03', 'DY') AS "Short Day Name"
FROM DUAL;
Resultat:
Full Day Name Short Day Name ________________ _________________ SAMSTAG SA
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',
'Day',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Resultat:
Sábado
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.