2017-01-12 7 views
0

私はSSIS ETLを使用しています(私は初心者です)。Excelのファイルに "08/03/2013 00:00:00"の形式でSQL Serverテーブルから日付を抽出しようとしています。 Excelで日付を "dd/mm/yyyy"の形式にする必要がありますが、階層が残るように日付として残す必要があります。つまり、カラムでオートフィルタを実行すると、日付グループが表示されます。また、データの列にはいくつかのヌルエントリがあります。ssis ETLがExcelに挿入される

私はETLスクリプトで試したことがあります: - 1)SQLテーブルからExcelファイルへの直接変換 - 結果 "2013-03-08 00:00:00"、yyyy/mm/dd ss:ss:ss no階層。私はExcelの列形式を変更しようとしましたが、日付を選択しても同じままです。 2)次に、SQLの日付をDT_DATEに変更するために、日付変換をETLに追加しました。 - 結果「3/8/2013」、m/d/yyyy、階層はありません。 3)私は、SQLの日付をDTW_STR - Result "2013/03/08 00:00:00"、yyyy/mm/dd ss:ss:ssという階層に変更するために日付変換を試しました。 4)私は文字列にさまざまなETL変換を試しましたが、Excelでは日付として認識されないので、階層はありません。

は、私は私が可能な場合は、ETLの中に、これを行うことを好む強いコーダないよ 「YYYY/MM/DD」の新しい日付形式にユーザーを「再教育」する立場にはありませんよ。

私は後で何を要約すると、Excelで日付を必要とするのは、dd/mm/yyyyの形式でグループ化できる実際の日付です。

+0

DATEVALUE関数を使用してテキストをExcelデータに変換して適切にフォーマットすることができる、出力されたExcelに別の列を追加することもできます。 – maxhob17

+0

ちょっと考えましたが、SSISを使用していますか?あなたが参照できるデータ接続されたテーブルが適切な代替品になるでしょうか? https://support.office.com/en-us/article/Connect-to-import-external-data-1376a390-a8bd-4718-aeb5-dff2ae88e92d?ui=en-US&rs=en-US&ad=US – iamdave

+0

ありがとうございます私はSSIS ETLがExcelと互換性があることを望んでいましたが、ETLは既にファイルを処理するために使用されています。Excelに取り込むのではなく、抽出を考慮して設計されていると思います。 –

答えて

0

私は、派生した列変換を試してみてください。

派生列名: NEWDATE

派生列: 'originalDate' を交換してください

式:これは、各部品を取り、文字列形式に変換しますRIGHT("0" + (DT_WSTR, 2)DATEPART("dd", [originalDate]), 2) + "/" + RIGHT("0" + (DT_WSTR, 2) DATEPART("mm", [originalDate]), 2) + "/" + (DT_WSTR, 4)DATEPART("yyyy", [originalDate])

ので、私たちが望む形式にそれらをつなぎ合わせることができます。すべてを括弧で囲み、Excelが認識できない場合は、日付形式に戻す必要があります。 (DT_DATE)(...)

+0

私はジョナサンの提案を試みました。ただし、Excelで開いたときに日付がETLをどのフォーマットにしても、テキストとして表示されているように見えます。誰かが手作業でVBAスクリプトを実行してすべてのエントリを日付に変換すると、私は手動介入を取り除くためにETLで何かできることを期待していました。変換を実行するには、VBスクリプトの実行を調査する必要があると考えてください。 –

関連する問題