2009-06-10 18 views
2

私は古いシステムから新しいシステムへのデータの移行に取り組んでいます。移行の一環として、レガシーシステムからのデータ(ファイルに保存されている)はMS SQL Serverにポンピングされます。今、私のアプリはOracle上で動作します。私は日付/タイムスタンプに問題があります。SQL Serverの日付形式をOracleに変換するにはどうすればよいですか?

MS SQL Serverのデータのタイムスタンプの形式は次のとおりです。

2008年12月23日午前0時00分00秒

Oracleは想定しています

23/12/2008 00: 00:00

または

23-DEC-2008 0時00分○○秒

データをインポートするための最良の方法だろうか?オラクルのto_date()機能は私が思ったように機能しませんでした。

答えて

5

あなたはinsert文を使用していると仮定しますか?

使用してあなたの日付を変換します

TO\_DATE(sql\_server\_value,'YYYY.MM.DD HH24:MI:SS') 
+0

これは機能しました。ありがとう。 TO_DATE(sql_server_value、 'DD-MON-YY HH24:MI:SS')を使用していました。 – Sathya

+0

はい...フォーマット文字列は、変換する値の形式を記述します。文字列にピリオドがある場合は、ピリオドを書式で指定する必要があります。 – DCookie

+0

私は、使用する書式文字列が宛先書式文字列のものであるという考えのもとにいました。これをクリアしていただきありがとうございます。 – Sathya

1

to_date関数に2番目のパラメータを指定して、受信データの形式を指定できます。おそらく、SQLサーバーがデータを文字列として出力するようにする必要があります。

http://www.techonthenet.com/oracle/functions/to_date.php

+0

私はエラーが故に、間違ったフォーマット文字列を使用していました。 – Sathya

-1

使用CONVERTあなたは、SQL Serverの側に望むものは何でも形式のテキストにあなたの内部のdatetime列を変換します。

+0

convert MS SQL Server d/bへの書き込み権が必要ですか?私は読み取り専用アクセス権を持っています。 – Sathya

+0

抽出にそれを行います:SELECT CONVERT(varchar、dtcol、100)AS dt_txt FROM tbl - テーブルとカラムの読み取りアクセス以外は必要ありません。 –

+0

DCookieの方法は、データを挿入するときと書式設定を行うことができるので簡単です。これを念頭に置いて、おそらくこの方法を他の場所で使用しています。 – Sathya

関連する問題