0

ヘブライ語(月の名前)でユーザー入力を取得し、それを英語の月の名前に変換する必要があります。ルックアップテーブルなしでこれを変換する方法はありますか(おそらくto_dateとto_charを使用して)?

更新-ノルウェー語の提案に従って、私はこのテストを行い、短いヘブライ語の月の名前が3文字より長いことを示しました!(この関数では3文字の文字列しか処理できません)

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
4

2 に答える 2

1

これが私の頭に浮かんだ最初のことです。ヘブライ語の値でテストするのに十分なヘブライ語はわかりませんが、これはノルウェー語で機能するようです。

with test_norwegian as (
  select 'januar' month
  from dual
)
select 
to_char(
  to_date('1 '||test_norwegian.month||' 2011', 'dd month yyyy', 'NLS_DATE_LANGUAGE=NORWEGIAN')
  , 'month', 'NLS_DATE_LANGUAGE=NORWEGIAN') norwegian_month
,to_char(
  to_date('1 '||test_norwegian.month||' 2011', 'dd month yyyy', 'NLS_DATE_LANGUAGE=NORWEGIAN')
  , 'month', 'NLS_DATE_LANGUAGE=AMERICAN') american_month
from test_norwegian
于 2011-01-27T13:31:51.687 に答える
0

ウィキペディアの記事のクイックスキャンに基づくと、ヘブライ暦は、ヘブライ暦がグレゴリオ暦と同じように機能しないと言うのが妥当なようです。例は次のとおりです。

  • 5771年のグレゴリオ暦にはうるう月はありません。
  • グレゴリオ暦の月は固定長です。それらは月の周期に基づいているため、すべてのヘブライ語の月が固定長であるとは限りません。

ヘブライ語とグレゴリオ暦の月の名前を変換する場合は、最初にヘブライ語の日付からグレゴリオ暦の日付に変換してから、グレゴリオ暦の月を決定する必要があります。

「ヘブライ語の日付からグレゴリオ暦の日付に変換する」をグーグルで検索すると、これらのカレンダー間で変換するための多数のツールのように見えるものが生成されます。

これがhebcalを適用する可能性のあるsourceforgeプロジェクトです

于 2011-01-27T13:59:09.987 に答える