В 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 за пълен списък.