С Oracle Database можем да използваме TO_CHAR(datetime)
функция за връщане на стойност за дата и час, форматирана по начин, който посочим.
Можем да използваме тази функция, за да върнем името на деня от дата (както и всякакви други части от стойността за дата и час).
Пълно име
Когато става въпрос за връщане на името на деня от дадена дата, имаме възможност да получим пълното име на деня или неговата съкратена версия.
За да получите пълното име на деня, DAY
Елементът format прави номера:
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Резултат:
SATURDAY
Име за кратък ден
За да получите съкратеното име на деня, използвайте DY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Резултат:
SAT
Изписване с главни букви
Можем да използваме главни букви, ако желаем. Това определя капитализацията на изхода:
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;
Резултат:
Day day Dy dy ____________ ____________ ______ ______ Saturday saturday Sat sat
Език
Езикът на името на деня се определя или изрично с NLS_DATE_LANGUAGE
параметър за инициализация или имплицитно с NLS_LANGUAGE
параметър за инициализация.
Можем изрично да зададем стойността на NLS_LANGUAGE
параметър с ALTER SESSION
изявление. Когато правим това, той също така имплицитно задава стойността на NLS_DATE_LANGUAGE
параметър.
Въпреки това, задаване на NLS_DATE_LANGUAGE
параметърът не променя стойността на NLS_LANGUAGE
параметър. Това ни позволява да посочим различен език за форматните елементи, които връщат изписани стойности, ако е необходимо.
Ето пример за настройка на на NLS_DATE_LANGUAGE
параметър на различен език:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
Резултат:
Session altered.
Сега, когато върнем името на деня от дата, то се връща на езика, който току-що посочихме:
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;
Резултат:
Full Day Name Short Day Name ________________ _________________ SAMSTAG SA
Езикът по подразбиране може да бъде отменен на ниво функция с трети параметър, който определя езика:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(
DATE '2037-10-03',
'Day',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Резултат:
Sábado
Има много повече форматни елементи, налични за форматиране на стойности за дата и час в Oracle. Вижте Списък с елементи на формат за дата и време в Oracle за пълен списък.