2011-01-27 11 views
0

ユーザー入力をヘブライ語(月名)にして英語の月の名前に変換する必要があります。ルックアップテーブルなしでこれを変換する方法がありますか(たぶんto_dateとto_charを使用しています)?ヘブライ語の月の名前をOracleの英語の月の名前に変換する

更新 - ノルウェー語の提案に続いて、短いヘブライ語の月名が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 
+0

あの、ヘブライヶ月は英語ヶ月に異なる長さであり、別の日に開始することを考えると、それらの間の1-1の関係はありませんを適用することができるSourceForgeのプロジェクトです。ヘブライ語の月は英語の2ヶ月にまたがることができ、その逆もあります。 –

+0

申し訳ありません - 私は英語の月のヘブライ語を意味しました。 –

答えて

1

ここに私の心に来た最初のものです。私は、ヘブライ語の値でテストするのに十分なヘブライ語を知らないが、これはノルウェーで動作するようです:ヘブライ暦が同じ動作しないと言うことは、合理的なようだWikipedia Article: Hebrew calendarのクイックスキャンに基づいて

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 
0

グレゴリオ暦のように。例としては、

  • は5771.
  • グレゴリオヶ月は長さが固定されている年間のグレゴリオ暦には閏月がありません。彼らは月の周期に基づいているので、すべてのヘブライ語の月は固定長ではありません。

あなたはヘブライ語とグレゴリオ月名の間で変換したい場合は、まずグレゴリオ月決定グレゴリウス日にヘブライ語の日付から変換する必要があります。

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

hebcal

+0

ありがとうございます - Oracle SQLでなければなりません。私は恐れています。 –

+0

PL/SQLで独自の変換ユーティリティを作成する必要があります。オラクルのフォーラムについて質問することを検討してください。他の人がこれをすでに行っているかもしれません。 – DwB

関連する問題