0

(01/01/2000)というラベルの付いた日付列を持つスプレッドシートをインポートしています。StartDateこれを 2 つの列に分割する必要がありMonthますYear

Month月名 (Jan、Feb など) である必要があり、もう一方は単純な 4 桁の年です。

SSISパッケージを介してこれを行いたいです。

いくつかの日付式を使用して派生列を作成しようとしましたが、必要な方法で何も動作させることができません。

これを行うための適切なスクリプトは何ですか?

ありがとうございました。

4

1 に答える 1

1

StartDate には Date-ish データ型があり、文字列 (DT_STR または DT_WSTR) としてインポートされていないと想定しています。

派生列をデータ フローに追加します。StartMonth のような名前を付けて、 のような式を使用しますMONTH([StartDate])

2 番目の派生列を追加し、それを StartYear と呼び、次のような式を使用しますYEAR([StartDate])

できます

私は読めないので、あなたは月の名前を尋ねました。このための組み込み式機能がないため、これは少し醜くなります。

三項演算子を使用して独自のものを作成することもできます(test) ? true : falseが、このアプローチの制限は、式エディターが長い式に対して扱いにくいことです。

([StartMonth]==1)?"January":([StartMonth]==2)? "February" : ([StartMonth]==3)? "March" : "Etc"

これに代わる方法は、スクリプト タスクを使用することです。[行] タブで、StartDate列を読み取り専用入力として確認します。出力に、StartMonthName という名前の新しい列を長さ 3 の文字列型として追加します (3 文字の省略形のみが必要な場合)。また、既にスクリプト タスクを使用している場合は、ここから in を追加することで、派生列の呼び出しをなくすことができStartMonthます。

Row.StartMonthName = Row.StartDate.ToString("MMM");
Row.StartMonth = Row.StartDate.Month;  
于 2013-07-19T01:52:46.867 に答える