В Oracle Database, TO_CHAR(datetime)
ни позволява да върнем стойност за дата и час, форматирана по начин, който посочим.
Едно от нещата, които можем да направим, е да върнем името на месеца от дата.
Пълно име на месеца
Когато става въпрос за връщане на името на месеца от дадена дата, имаме възможност да получим пълното име на месеца или съкратената му версия.
За да получите пълното име на месеца, използвайте MONTH
форматен елемент:
SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;
Резултат:
<пред>октомвриИме на кратък месец
За да получите съкратеното име на месеца, използвайте MON
:
SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;
Резултат:
ОКТ
Изписване с главни букви
Можем да използваме главни букви, за да определим изписването с главни букви на изхода:
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;
Резултат:
Месец месец пн пн ____________ ____________ ______ ______ октомври октомври октомври
Език
Езикът на името на месеца се определя или изрично с 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';
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;
Резултат:
Пълно име на месец Кратко име на месец __________________ ___________________ октомври октомври
Езикът по подразбиране може да бъде отменен на ниво функция с трети параметър, който определя езика:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(
DATE '2037-10-03',
'Month',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Резултат:
октомври
Има много повече форматни елементи, налични за форматиране на стойности за дата и час в Oracle. Вижте Списък с елементи на формат за дата и време в Oracle за пълен списък.