2016-07-29 7 views
0

SSISプログラムを実行してロギングデータを取得し、後でBIツールで使用できるようにExcelにエクスポートしようとしています。データには、3つの時間フィールド、開始時間、終了時間、および実行時間があります。彼らは私のスクリプトコンポーネントから出てきて正しいようです。私がデータビューアツールを使用すると完璧に見えるので、SSISエクスポート時に日付フィールドを追加します

しかし、私がExcelに入るとき、私はこのタイプのフォーマットを取得します。

On Run Time column

私はこれを引き起こすか、またはどのようにそれを修正することです何かわかりません。私が気付いた唯一の事は、ソース拡張エディタのプロパティがカラムのデータ型を日付に設定していたことです。

The Property

しかし、私はそれだけで日付データ型に切り替わりDB_TIME(スクリプトから出てくると同じタイプ)を入力し、それを変更しようとするたびに。

この日付の追加を防止する方法はありますか? BIツールの使用は不可能になります。どんな助けでも大歓迎です。

+0

クエリを使用してエクスポートを行う前に、結果をnvarcharに変換しようとしましたか?このようにして、excelはあなたが望む形式の文字列として情報を見ます –

+0

私は持っていません。それがどのように行われたのか説明できますか? –

+0

クエリの開始時刻(例:DD/MM/YYYYY)にCONVERT(NVARCHAR、starttime、103)を使用すると、[ここ]の詳細情報が表示されます(https://technet.microsoft.com/en-us/) library/ms187928(v = sql.105).aspx)を使用すると、同じ形式の文字列としてExcelにエクスポートされます。 Excelは日付としてフィールドを認識しませんが、文字列として –

答えて

0

問題が見つかりました。それは、Excel接続マネージャーが日付フィールドとしてそのフィールドを自動的に認識することと関係があり、そのためにそれをその形式でエクスポートしました。この変更は最終的なコンポーネントと宛先の間の接続で起こっていたので、その後のキャストは機能しませんでした。

私は単純にxlsファイルをcsvに変更し、フラットファイルマネージャを使用しましたが、それはトリックでした!

0

私にとっては奇妙な動作ですが、データ変換の変換をパッケージに追加してみてください。これにより、必要なデータの種類(文字列または時刻)が強制されます。

+0

私は成功していないデータ変換コンポーネントを試しました。しかし、文字列に変換しようとすると、 'データの損失の可能性があるため、値を変換できませんでした'というエラーが表示されたため、文字列を取得してみる必要があります。 –

+0

どのような変換を試みましたか?スクリプトコンポーネントがDateTimeオブジェクトまたは文字列を返します.NetにはTime型がまだありません。 'DT_DBTIME'にキャストしようとしましたか? –

+0

はい私は日付にキャストしようとしましたが、スクリプトコンポーネントからタイムアウトしただけです。dbtimeとしてc#timespanデータ型を使用します。 ssisの目標 –

0

あなたは、データ変換の変換を使用して時刻をキャストするDT_WSTR(1252)

を試みたことがありますか?

関連する問題