Med Oracle Database kan vi använda den TO_CHAR(datetime)
funktion för att returnera ett datetime-värde, formaterat på ett sätt som vi anger.
Vi kan använda den här funktionen för att returnera dagsnamnet från ett datum (liksom alla andra delar av datetime-värdet).
Heldagsnamn
När det gäller att returnera dagsnamnet från ett datum, har vi möjlighet att få hela dagsnamnet eller dess förkortade version.
För att få hela dagens namn, DAY
formatelementet gör susen:
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Resultat:
SATURDAY
Short Day Name
För att få det förkortade dagsnamnet, använd DY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Resultat:
SAT
Kapitalisering
Vi kan använda versaler om vi vill. Detta bestämmer versaler för utdata:
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
Språk
Språket för dagens namn bestäms antingen explicit 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
parameter till ett annat språk:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
Resultat:
Session altered.
Nu, när vi returnerar dagsnamnet från ett datum, returneras det på det språk vi precis angav:
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
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',
'Day',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Resultat:
Sábado
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.