1

私はSSIS 2008を初めて使用しており、現在、古いAdvantageデータベースからSQL Server 2005にデータを移行する作業を行っています。ソースとデスティネーションを持つデータフローオブジェクトを使用してSSISパッケージをセットアップしました。ほとんどの列をコピーするのは効果的ですが、Advantage Timestamp列をDateTimeフィールドにコピーしようとすると、多くのエラーが発生します。 Advantageがタイムスタンプ情報をどのように格納しているのか理解できます。私の質問は、SQL Server 2005の正しいDATETIMEフィールドにこの列を変換する最善の方法は何ですか?SSISアドバンテージタイムスタンプSQL Datetime

Advantage TimeStampカラムをvarcharカラムにコピーしてから、私の変換を行うSQLスクリプトを実行することができました。よりエレガントな方法があるのか​​、このタイプの問題に対する通常の解決方法があるのだろうかと私は思っていました。

ご協力いただきありがとうございます。

答えて

2

データフローでは、AdvantageタイムスタンプをSQL ServerのDATETIME(DT_DBTIMESTAMP)データ型にキャストしようとすることができます(これはSQL ServerのTIMESTAMPデータ型ではありません)。派生列変換新しい列を追加し、次の式を入力してデータ型を変換します。

(DT_DBTIMESTAMP) [MyDate] 

これが失敗した場合、あなたが文字列に型キャストを行うことができ、(DT_STR、<>、<>)、その後、文字列関数を使用して文字列を操作して、単一の式でDT_DBTIMESTAMPへのキャストを入力。

(DT_DBTIMESTAMP) (...string functions...(DT_STR, 20, 1252)[MyDate]) 
0

Timestampはデータ型であり、日付または時刻データとは関係ありません。