Преобразование названия еврейского месяца в английское название месяца в Oracle - PullRequest
0 голосов
/ 27 января 2011

Я должен взять пользовательский ввод на иврите (название месяца) и преобразовать его в английское название месяца.Есть ли способ преобразовать это (возможно, используя to_date и to_char) без таблицы поиска?

Обновление - следуя предложению для норвежского я сделал этот тест, показывая, что короткие названия еврейского месяца длиннее трех символов!(Я могу обрабатывать только три строки символов в этой функции)

with d as
(
select to_date('01' || lpad(rownum,2,'0') || '2011','DDMMYYYY') d from
(
select 1 from dual connect by level <=12
)
)
select to_char(d.d,'MON','NLS_DATE_LANGUAGE=HEBREW') heb_mon,
to_char(d.d,'MONTH','NLS_DATE_LANGUAGE=AMERICAN') us_mon
from d;

Которые создали эти данные

ינואר   JAN
פברואר  FEB
מרץ     MAR
אפריל   APR
מאי     MAY
יוני    JUN
יולי    JUL
אוגוסט  AUG
ספטמבר  SEP
אוקטובר OCT
נובמבר  NOV
דצמבר   DEC

Ответы [ 2 ]

1 голос
/ 27 января 2011

Вот первое, что пришло мне в голову.Я не знаю достаточного количества иврита для тестирования на иврите, но это похоже на норвежский язык:

0 голосов
/ 27 января 2011

На основании быстрого сканирования статьи Википедии: еврейский календарь кажется разумным сказать, что еврейский календарь не работает так же, как григорианский календарь. Примеры включают в себя:

  • В григорианском календаре на год 5771 нет високосного месяца.
  • Григорианские месяцы фиксированной длины. Поскольку они основаны на лунных циклах, не все еврейские месяцы имеют фиксированную длину.

Если вы хотите выполнить конвертацию между названиями еврейских и григорианских месяцев, сначала вам нужно будет конвертировать из еврейской даты в григорианскую, а затем определить григорианский месяц. Поиск в Google "преобразовать дату иврита в григорианскую дату" дает, по-видимому, большое количество инструментов для преобразования между этими календарями.

Вот проект sourceforge, который может применяться hebcal

...