0

インドネシアのファイルから取得したデータをインポートする必要があります。その一部は、「01OKT2011」という形式の日付です。これらを T-SQL 日時 (10-01-2011 00:00:00 など) に自動的に変換できるようにする必要があります。

私が考えることができる最も簡単な方法は、外国の短い名前の列と月番号の列を持つルックアップ テーブルを作成することですが、これは、現時点で唯一のソース ファイルであるという事実によって、より困難になります。 10 月と 11 月のみを対象としており、他の月がどのように省略されるかは完全にはわかりません。

これを行う簡単な方法はありますか?SQL Server の組み込み言語の 1 つが同じ月の短い名前を使用していますか?

4

1 に答える 1

0

syslanguagesテーブルを調べて、SQL Server インストールがインドネシア語をサポートしているかどうかを確認してください。

SQL Server がインドネシア語をサポートしていると仮定して、言語をインドネシア語に設定します。また、SET DATEFORMAT ymd. 次に、日時を直接使用します。

インドネシア語がサポートされていない/インストールされていない場合は、データベースの外部でローカライズを解決するために一生懸命努力する必要があります (データベースサーバーが月の名前を喜んで理解している場合でも、実際にはお勧めしますが、そのアドバイスはまったく別のものに取っておきます)質問)。

その場合、実際の使用ではなくても、少なくともデータの変換には、次のアプローチが役立つ場合があります。

DATETIMEFROMPARTS(
    SUBSTRING(x, 6, 4), 
    REPLACE(...(REPLACE(SUBSTRING(x, 3, 3), 'JAN', 'Jan')...,'OKT', 'Oct'),...,'DEC', 'Dec')...),
    SUBSTRING(x, 1, 2)
)
于 2012-04-25T21:27:42.243 に答える